assert_eq.l:: assert_eq:: assert_eq.b:: restore_sp:: ; think TWICE before moving the sp! restore_bc:: ei:: ; ( -- ) mod -- -- -- -- -- di:: ; ( -- ) mod -- -- -- -- -- halt:: ; ( -- ) mod -- -- -- -- -- nop:: ; ( -- ) mod -- -- -- -- -- getchar:: ; ( -- char f:z ) mod a+ -- -- -+ -- putchar:: ; ( char -- ) mod af -- -- -- -- putstr:: ; ( cstr -- ) mod af -- -- hl -- message:: ; ( [cstring] -- ) mod af -- -- -- ix native:: ; sp=IY pc=IP mod -- -- -- -- -- native_nostack:: ; pc=IP, no stack! mod -- -- -- -- -- virtual:: ; IY=sp IP=pc mod -f -- -- -- ix extu_bc:: ; bc = c.u mod -- ++ -- -- -- exts_bc:: ; bc = c.s mod af ++ -- -- -- extu_de:: ; de = e mod -- -- ++ -- -- exts_de:: ; de = e mod af -- ++ -- -- extu_bc.l:: ; bcbc = bc mod -- ++ -- -- -- exts_bc.l:: ; bcbc = bc mod af ++ -- -- -- extu_de.l:: ; dede = de mod -- -- ++ -- -- exts_de.l:: ; dede = de mod af -- ++ -- -- extu_hl:: ; hl = l mod -- -- -- ++ -- exts_hl:: ; hl = l mod af -- -- ++ -- extu_hl.l:: ; hlhl = hl mod -- -- -- ++ -- exts_hl.l:: ; hlhl = hl mod af -- -- ++ -- ldi_b:: ; b = n16.hi mod af +- -- -- -- ldi_c:: ; c = n16.hi mod af -+ -- -- -- ldi_bc:: ; bc = n16 mod -- ++ -- -- -- ldi_e:: ; e = n8 mod -- -- ++ -- -- ldi_de:: ; de = n16 mod -- -- ++ -- -- gvar_hl:: ; mod -- -- -- ++ -- svar_hl:: ; mod -- -- -- ++ -- svar:: ; ( [addr] -- vref ) mod -- -- -- ++ -- gvar:: ; ( [addr] -- vref ) mod -- -- -- ++ -- ival:: ; ( [n16] -- n16 ) mod -- -- -- ++ -- ival.b:: ; ( [n8] -- n8 ) mod -- -- -- ++ -- ldi_l:: ; l = n8 mod -- -- -- ++ -- ldi_hl:: ; hl = n16 mod -- -- -- ++ -- ldi_bc.l:: ; bcbc = n32 mod -- ++ -- -- -- ldi_bc.lwu:: ; bc'= 00, bc = u16 mod -- ++ -- -- -- ldi_bc.lws:: ; bc' = FF, bc = u16 mod -- ++ -- -- -- ldi_de.l:: ; dede = n32 mod -- -- ++ -- -- ldi_de.lwu:: ; de'= 00, de = u16 mod -- -- ++ -- -- ldi_de.lws:: ; de' = FF, de = u16 mod -- -- ++ -- -- ldi_hl.lwu:: ; hl' = 00, hl = u16 mod -- -- -- ++ -- ldi_hl.lws:: ; hl' = FF, hl = u16 mod -- -- -- ++ -- ival.l:: ; ( [n32] -- n32 ) mod -- -- -- ++ -- ldi_hl.l:: ; hlhl = n32 mod -- -- -- ++ -- ld0_b:: ; b = 0 mod -- +- -- -- -- ld0_c:: ; c = 0 mod -- -+ -- -- -- ld0_e:: ; e = 0 mod -- -- ++ -- -- ld0_l:: ; l = 0 mod -- -- ++ -- -- ld0_bc.l:: ; bcbc = 0 mod -- ++ -- -- -- ld0_bc:: ; bc = 0 mod -- ++ -- -- -- ld0_de.l:: ; dede = 0 mod -- -- ++ -- -- ld0_de:: ; de = 0 mod -- -- ++ -- -- ld0_hl.l:: ; hlhl = 0 mod -- -- -- ++ -- ld0_hl:: ; hl = 0 mod -- -- -- ++ -- ld_bc_hl.l:: ; bcbc = hlhl mod -- ++ -- -- -- ld_bc_hl:: ; bc = hl mod -- ++ -- -- -- ld_c_l:: ; c = l mod -- -+ -- -- -- ld_b_l:: ; b = l mod -- +- -- -- -- ld_bc_de.l:: ; bcbc = dede mod -- ++ -- -- -- ld_bc_de:: ; bc = de mod -- ++ -- -- -- ld_c_e:: ; c = e mod -- -+ -- -- -- ld_b_e:: ; b = e mod -- +- -- -- -- ld_de_bc.l:: ; dede = bcbc mod -- -- ++ -- -- ld_de_bc:: ; de = bc mod -- -- ++ -- -- ld_e_c:: ; e = c mod -- -- -+ -- -- ld_de_hl.l:: ; dede = hlhl mod -- -- ++ -- -- ld_de_hl:: ; de = hl mod -- -- ++ -- -- ld_e_l:: ; e = l mod -- -- -+ -- -- ld_hl_bc.l:: ; hlhl = bcbc mod -- -- -- ++ -- ld_hl_bc:: ; hl = bc mod -- -- -- ++ -- ld_l_c:: ; l = c mod -- -- -- -+ -- ld_hl_de.l:: ; hlhl = dede mod -- -- -- ++ -- ld_hl_de:: ; hl = de mod -- -- -- ++ -- ld_l_e:: ; l = e mod -- -- -- -+ -- exhlde.l:: ; ( a b -- b a ) mod -- -- ++ ++ -- exhlde:: ; ( a b -- b a ) mod -- -- ++ ++ -- gget_b:: ; b = (nn) mod -- +- -- hl -- ld_b_xhl:: ; b = (hl) mod -- +- -- -- -- gget_c:: ; c = (nn) mod -- -+ -- hl -- ld_c_xhl:: ; c = (hl) mod -- -+ -- -- -- gget_bc:: ; bc = (nn) mod -- ++ -- hl -- ld_bc_xhl:: ; bc = (hl) mod -- ++ -- hl -- gget_e:: ; e = (nn) mod -- -- -+ hl -- ld_e_xhl:: ; e = (hl) mod -- -- -+ -- -- gget_de:: ; de = (nn) mod -- -- ++ hl -- ld_de_xhl:: ; de = (hl) mod -- -- ++ hl -- gget_de.l:: ; dede = (nn) mod a- -- ++ hl -- ld_de_xhl.l:: ; dede = (hl) mod a- -- ++ hl -- gget_l:: ; l = (nn) mod -- -- -- h+ -- ld_l_xhl:: ; l = (hl) mod -- -- -- -+ -- gget_hl:: ; hl = (nn) mod a- -- -- ++ -- get:: ; hl = (hl) mod a- -- -- ++ -- ld_hl_xhl:: ; hl = (hl) mod a- -- -- ++ -- gget.l:: ; hlhl = (nn) mod a- -- -- ++ -- gget_hl.l:: ; hlhl = (nn) mod a- -- -- ++ -- get.l:: ; hlhl = (hl) mod a- -- -- ++ -- ld_hl_xhl.l:: ; hlhl = (hl) mod a- -- -- ++ -- gset_b:: ; (nn) = b mod -- -- -- hl -- ld_xhl_b:: ; (hl) = b mod -- -- -- -- -- gset_c:: ; (nn) = c mod -- -- -- hl -- ld_xhl_c:: ; (hl) = c mod -- -- -- -- -- gset_bc:: ; (nn) = bc mod -- -- -- hl -- ld_xhl_bc:: ; (hl) = bc mod -- -- -- hl -- gset_l:: ; (nn) = l mod -- -- de hl -- gset_e:: ; (nn) = e mod -- -- -- hl -- ld_xhl_e:: ; (hl) = e mod -- -- -- -- -- gset_hl:: ; (nn) = hl mod -- -- de hl -- gset_de:: ; (nn) = de mod -- -- -- hl -- ld_xhl_de:: ; (hl) = de mod -- -- -- hl -- gset_de.l:: ; (nn) = dede mod a- -- -- hl -- ld_xhl_de.l:: ; (hl) = dede mod a- -- -- hl -- gset_hl.l:: ; (nn) = hlhl mod a- -- de -- -- ld_xde_hl.l:: ; (de) = hlhl mod a- -- de -- -- ld_xde_hl:: ; (de) = hl mod -- -- de hl -- lvar_hl:: ; hl = iy + nn mod af -- -- ++ -- 52cc lvar_xDE:: ; hl = iy + nn mod af -- de ++ -- 47cc lvar_de:: ; de = iy + nn mod af -- ++ -- -- lvar_bc:: ; bc = iy + nn mod af ++ -- -- -- ivar:: ; hl = hl + nn mod -f -- de ++ -- iget_b:: ; b = (hl+nn) mod -f +- de hl -- iget_c:: ; c = (hl+nn) mod -f -+ de hl -- iget_bc:: ; bc = (hl+nn) mod -f ++ de hl -- iget_e:: ; e = (hl+nn) mod -f -- d+ hl -- iget_de:: ; de = (hl+nn) mod -f -- ++ hl -- iget_de.l:: ; dede = (hl+nn) mod af -- ++ hl -- iget_l:: ; l = (hl+nn) mod -f -- de h+ -- iget_hl:: ; hl = (hl+nn) mod af -- de ++ -- iget_hl.l:: ; hlhl = (hl+nn) mod af -- de ++ -- 105cc iset_b:: ; (hl+nn) = b mod -f -- de hl -- iset_c:: ; (hl+nn) = c mod -f -- de hl -- iset_bc:: ; (hl+nn) = bc mod -f -- de hl -- iset_e:: ; (hl+nn) = e mod af -- de hl -- 42cc iset_de:: ; (hl+nn) = de mod af -- de hl -- af' 67cc iset_de_xBC:: ; (hl+nn) = de mod -f bc -- hl -- 51cc iset_de.l:: ; (hl+nn) = dede mod af -- de hl -- af' 117cc iset_de_xBC.l:: ; (hl+nn) = dede mod af bc -- hl -- 101cc ati.b:: ; hl = hl + de*1 mod -f -- -- ++ -- ati:: ; hl = hl + de*2 mod -f -- -- ++ -- ati.l:: ; hl = hl + de*4 mod -f -- de ++ -- atiget_b:: ; b = (hl+de*1) mod -f +- -- hl -- atiget_c:: ; c = (hl+de*1) mod -f -+ -- hl -- atiget_bc:: ; bc = (hl+de*2) mod -- ++ -- hl -- atiget_e:: ; e = (hl+de*1) mod -f -- -+ hl -- atiget_de:: ; de = (hl+de*2) mod -f -- ++ hl -- atiget_de.l:: ; dede = (hl+de*4) mod af -- ++ hl -- atiget_l:: ; l = (hl+de*1) mod -f -- -- h+ -- atiget_hl:: ; hl = (hl+de*2) mod af -- -- ++ -- atiget_hl.l:: ; hlhl = (hl+de*4) mod af -- de ++ -- 121cc atiset_b:: ; (hl+de*1) = b mod -f -- -- hl -- 28cc atiset_c:: ; (hl+de*1) = c mod -f -- -- hl -- 28cc atiset_bc:: ; (hl+de*2) = bc mod -f -- -- hl -- 52cc atiset_bc.l:: ; (hl+de*4) = bcbc mod af -- de hl -- 117cc atiset.b:: ; (hl+de*1) = (iy) mod af -- -- hl -- 47cc atiset.w:: ; (hl+de*2) = (iy) mod af -- -- hl -- 90cc atiset:: ; (hl+de*2) = (iy) mod af -- -- hl -- 90cc atiset.l:: ; (hl+de*4) = (iy) mod af -- de hl -- 147cc eq:: ; l = eq (z) mod -f -- -- -+ -- ne:: ; l = ne (nz) mod -f -- -- -+ -- ge:: ; l = ge (nc) mod -f -- -- -+ -- lt:: ; l = lt (cy) mod -f -- -- -+ -- gt:: ; l = gt (nc & nz) mod -f -- -- -+ -- le:: ; l = le (cy | z) mod -f -- -- -+ -- jp:: ; jump always. mod -- -- -- hl -- jp_xIX:: ; jump always. mod -- -- -- -- ix jpz_xIX:: ; jp if z mod -- -- -- -- ix jpnz_xIX:: ; jp if !z mod -- -- -- -- ix jpeq:: ; jp if eq mod -- -- -- hl -- jpz:: ; jp if z mod -- -- -- hl -- jpne:: ; jp if !eq mod -- -- -- hl -- jpnz:: ; jp if !z mod -- -- -- hl -- jpnc:: ; jp if !cy mod -- -- -- hl -- jpnlt:: ; jp if !lt mod -- -- -- hl -- jpge:: ; jp if ge mod -- -- -- hl -- jpc:: ; jp if cy mod -- -- -- hl -- jpnge:: ; jp if !ge mod -- -- -- hl -- jplt:: ; jp if lt mod -- -- -- hl -- jpnle:: ; jp if !le mod -- -- -- hl -- jpgt:: ; jp if gt mod -- -- -- hl -- jpngt:: ; jp if !gt mod -- -- -- hl -- jple:: ; jp if le mod -- -- -- hl -- ifeq:: ; mod af -- -- -- -- ifz:: ; do next opcode if z mod af -- -- -- -- ifne:: ; mod af -- -- -- -- ifnz:: ; do next opcode if !z mod af -- -- -- -- iflt:: ; do next opcode if lt mod af -- -- -- -- ifge:: ; do next opcode if ge mod af -- -- -- -- ifle:: ; do next opcode if le mod af -- -- -- -- ifgt:: ; do next opcode if gt mod af -- -- -- -- ifeq2:: ; mod af -- -- -- -- ifz2:: ; do next 2 ops if z mod af -- -- -- -- ifne2:: ; mod af -- -- -- -- ifnz2:: ; do next 2 ops if !z mod af -- -- -- -- iflt2:: ; do next 2 ops if lt mod af -- -- -- -- ifge2:: ; do next 2 ops if ge mod af -- -- -- -- ifle2:: ; do next 2 ops if le mod af -- -- -- -- ifgt2:: ; do next 2 ops if gt mod af -- -- -- -- switch:: ; mod -f -- de hl -- switch_0:: ; mod -f -- de hl -- switch_quick:: ; mod -f -- -- hl -- mem_get_free:: ; ( -- u16 ) mem_refcnt:: ; ( ptr -- u8 ) mem_retain:: ; ( ptr -- ptr ) mod: f, pres all other, may panic mem_release:: ; ( ptr -- ) mod: af de hl istr:: ; ( [len,text] -- ptr ) spacestr:: ; ( size filler -- str ) mem_alloc:: ; ( size -- ptr ) oomem:: new_handle_for_ptr_fast:: ; ( hl->data -- hl->handle ) mod: af de, no stack use new_data_with_size:: ; ( hl:size -- hl->data ) mod: af de hl used new_data_with_size_fast:: ; ( hl:size -- hl->data ) mod f hl de, pres: a new_handle_for_ptr:: ; ( de->data -- de->handle ) garbage_collection:: ; ( -- f:z ) mod: af, pres: all others uses stack mem_compact:: mfree:: ; mfree(hl) mod af -- -- hl -- malloc:: ; hl = malloc(hl) mod af -- de ++ -- msize:: ; hl = msize(hl) mod af -- de ++ -- inc_xhl.l:: ; (hl).l += 1 mod -f -- -- hl -- dec_xhl.l:: ; (hl).l -= 1 mod af -- -- hl -- ppld_hl_xhl.l:: ; hlhl = ++(hl) mod af -- -- ++ -- mmld_hl_xhl.l:: ; hlhl = --(hl) mod af -- -- ++ -- ldpp_hl_xhl.l:: ; hlhl = (hl)++ mod af -- -- ++ -- restore_sp ldmm_hl_xhl.l:: ; hlhl = (hl)-- mod af -- -- ++ -- restore_sp dec_hl.l:: ; hlhl -= 1 mod af -- -- ++ -- inc_hl.l:: ; hlhl += 1 mod af -- -- ++ -- sign_hl.l:: ; l = sign(hlhl) mod -f -- -- h+ -- abs_hl.l:: ; hlhl = abs(hlhl) mod af -- -- ++ -- not_hl.l:: ; l = !hlhl mod af -- -- -+ -- sl1_hl.l:: ; hlhl = hlhl << 1 mod -f -- -- ++ -- sru1_hl.l:: ; hlhl = hlhl >> 1 mod -f -- -- ++ -- srs1_hl.l:: ; hlhl = hlhl >> 1 mod -f -- -- ++ -- sl1_xhl.l:: ; (hl).l <<= 1 mod -f -- -- hl -- sru1_xhl.l:: ; (hl).l >>= 1 mod af -- -- -- -- srs1_xhl.l:: ; (hl).l >>= 1 mod af -- -- -- -- sli_hl.l:: ; hlhl <<= n mod af -- de ++ -- sl_hl_e.l:: ; hlhl <<= e mod af -- -- ++ -- srui_hl.l:: ; hlhl >>= n mod af -- de ++ -- sru_hl_e.l:: ; hlhl >>= e mod af -- -- ++ -- srsi_hl.l:: ; hlhl >>= n mod af -- de ++ -- srs_hl_e.l:: ; hlhl >>= e mod af -- -- ++ -- subi_hl.l:: ; hlhl -= nnnn mod -f -- de ++ -- better: addi -NNNN sub_hl_de.l:: ; hlhl -= dede mod -f -- -- ++ -- subi_xhl.l:: ; (hl).l -= nnnn mod af -- de hl -- sub_xhl_de.l:: ; (hl).l -= dede mod af -- -- hl -- sub.lbs:: ; hlhl -= e mod af -- -- ++ -- sub.lws:: ; hlhl -= de mod -f -- -- ++ -- sub.lbu:: ; hlhl -= e mod -f -- -- ++ -- subi_hl.lwu:: ; hlhl -= nn mod -f -- de ++ -- sub.lwu:: ; hlhl -= de mod -f -- -- ++ -- sub_xhl_e.lbu:: ; (hl).l -= e mod af -- d- hl -- subi_xhl.lwu:: ; (hl).l -= nn mod af -- de hl -- sub_xhl_de.lwu:: ; (hl).l -= de mod af -- -- hl -- sub_xhl_e.lbs:: ; (hl).l -= e mod af -- d- hl -- sub_xhl_de.lws:: ; (hl).l -= de mod af -- -- hl -- addi_hl.l:: ; hlhl += nnnn mod -f -- de ++ -- add_hl_de.l:: ; hlhl += dede mod -f -- -- ++ -- addi_xhl.l:: ; (hl).l += nnnn mod af -- de hl -- add_xhl_de.l:: ; (hl) += dede mod af -- -- hl -- add_hl_e.lbs:: ; hlhl += e mod af -- d- ++ -- add_hl_de.lws:: ; hlhl += de mod af -- -- ++ -- add_hl_e.lbu:: ; hlhl += e mod af -- -- ++ -- addi_hl.lwu:: ; hlhl += nn mod af -- de ++ -- add_hl_de.lwu:: ; hlhl += de mod af -- -- ++ -- add_xhl_e.lbu:: ; (hl).l += e mod af -- d- hl -- addi_xhl.lwu:: ; (hl).l += nn mod af -- de hl -- add_xhl_de.lwu:: ; (hl).l += de mod af -- -- hl -- add_xhl_e.lbs:: ; (hl).l += e mod af -- d- hl -- add_xhl_de.lws:: ; (hl).l += de mod af -- -- hl -- andi_hl.l:: ; hlhl &= nnnn mod af -- de ++ -- and_hl_de.l:: ; hlhl &= dede mod af -- -- ++ -- andi_hl.lw:: ; hlhl &= nn mod af -- de ++ -- for .w result use 'andi' and_hl_de.lw:: ; hlhl &= de mod af -- -- ++ -- for .w result use 'and' and_xhl_de.l:: ; (hl).l &= dede mod af -- -- hl -- ori_hl.l:: ; hlhl |= nnnn mod af -- de ++ -- or_hl_de.l:: ; hlhl |= dede mod af -- -- ++ -- or_xhl_de.l:: ; (hl).l = dede mod af -- -- hl -- xori_hl.l:: ; hlhl ^= nnnn mod af -- de ++ -- xor_hl_de.l:: ; hlhl ^= dede mod af -- -- ++ -- xor_xhl_de.l:: ; (hl).l ^= dede mod af -- -- hl -- muli_hl.l:: ; hlhl *= nnnn mod af -- de ++ -- restore_bc muli_hl.lbs:: ; hlhl *= ffffff00+n mod af -- de ++ -- restore_bc currently requires nn = ff00+n muli_hl.lws:: ; hlhl *= ffff0000+nn mod af -- de ++ -- restore_bc mul_hl_e.lbs:: ; hlhl *= e mod af -- de ++ -- restore_bc TODO: optimize mul_hl_de.lws:: ; hlhl *= de mod af -- de ++ -- restore_bc TODO: optimize muli_hl.lbu:: ; hlhl *= n mod af -- de ++ -- mul_hl_e.lbu:: ; hlhl *= e mod af -- de ++ -- restore_bc TODO: optimize muli_hl.lwu:: ; hlhl *= nn mod af -- de ++ -- restore_bc mul_hl_de.lwu:: ; hlhl *= de mod af -- de ++ -- restore_bc TODO: optimize mul_hl_de.l:: ; hlhl *= dede mod af -- de ++ -- restore_bc mul10_hl.l:: ; hlhl *= 10 mod af -- de ++ -- mul_xhl_de.l:: ; (hl).l *= dede mod af -- de hl -- restore_bc restore_sp mul_xhl_de.lwu:: ; (hl).l *= de mod af -- de hl -- restore_bc restore_sp mul_xhl_de.lws:: ; (hl).l *= de mod af -- de hl -- restore_bc restore_sp mul_xhl_e.lbu:: ; (hl).l *= e mod af -- de hl -- restore_bc restore_sp mul_xhl_e.lbs:: ; (hl).l *= e mod af -- de hl -- restore_bc restore_sp neg_hl.l:: ; hlhl = -hlhl mod af -- -- ++ -- neg_de.l:: ; dede = -dede mod af -- ++ -- -- div_hl_de.lws:: ; hlhl,dede = hlhl/de mod af -- ++ ++ -- restore_bc div_hl_de.ls:: ; hlhl,dede=hlhl/dede mod af -- ++ ++ -- restore_bc restore_sp ~5200-6100cc div_hl_de.lwu:: ; hlhl,dede = hlhl/de mod af -- ++ ++ -- restore_bc divi_hl.lu:: ; hlhl,dede=hlhl/nnnn mod af -- ++ ++ -- restore_bc ~5000 - 5800cc div_hl_de.lu:: ; hlhl,dede=hlhl/dede mod af -- ++ ++ -- restore_bc ~5000 - 5800cc cmpi.sl:: ; c,z = hlhl - nnnn mod a+ -- de -- -- cmp.sl:: ; c,z = hlhl - dede mod a+ -- -- -- -- cmp0.sl:: ; c,z = hlhl - 0 mod a+ -- -- -- -- cmp.sul:: ; c,z = hlhl - dede mod a+ -- -- -- -- cmp.usl:: ; c,z = hlhl - dede mod a+ -- -- -- -- cmpi.ul:: ; c,z = hlhl - nnnn mod a+ -- de -- -- cmp.ul:: ; c,z = hlhl - dede mod a+ -- -- -- -- cmp0.ul:: ; c,z = hlhl - 0 mod a+ -- -- -- -- add_b_c:: ; b += c mod af +- -- -- -- add_b_l:: ; b += l mod af +- -- -- -- add_c_b:: ; c += b mod af -+ -- -- -- add_c_l:: ; c += l mod af -+ -- -- -- addi_bc:: ; bc += nn mod -f ++ -- hl -- add_bc_hl:: ; bc += hl mod -f ++ -- hl -- add_l_b:: ; l += b mod af -- -- -l -- add_hl_bc:: ; hl += bc mod -f -- -- ++ -- add_l_c:: ; l += c mod -f -- -- h+ -- addi_hl:: ; hl += nn mod -f -- de ++ -- add_hl_de:: ; hl += de mod -f -- -- ++ -- add_l_e:: ; l += e mod -f -- -- h+ -- addi_b:: ; b += n.hi mod af +- -- -- -- addi_c:: ; c += n.hi mod af -+ -- -- -- addi_l:: ; l += n.hi mod af -- -- -+ -- add_xhl_b:: ; (hl) += b mod af -- -- -- -- add_xhl_c:: ; (hl) += c mod af -- -- -- -- add_xhl_bc:: ; (hl) += bc mod af -- -- -- -- addi_xhl.b_v2:: ; (hl) += nn.hi mod af -- -- -- -- addi_xhl.b:: ; (hl) += n mod af -- de -- -- add_xhl_e:: ; (hl) += e mod af -- -- -- -- addi_xhl.w:: ; (hl) += nn mod af -- de hl -- add_xhl_de:: ; (hl) += de mod af -- -- hl -- add.bwu:: ; hl = l + de mod af -- -- ++ -- add.wbu:: ; hl = hl + e mod af -- -- ++ -- add.wbs:: ; hl = hl + e mod af -- de ++ -- add.bws:: ; hl = l + de mod af -- -- ++ -- inc_b:: ; b += 1 mod -f +- -- -- -- inc_c:: ; c += 1 mod -f -+ -- -- -- inc_l:: ; l += 1 mod -f -- -- -+ -- inc4_hl:: ; hl += 4 mod af -- -- ++ -- for pointers inc2_hl:: ; hl += 2 mod -- -- -- ++ -- for pointers inc_hl:: ; hl += 1 mod -- -- -- ++ -- inc_xhl.w:: ; (hl) += 1 mod -f -- -- hl -- inc_xhl.b:: ; (hl) += 1 mod -f -- -- -- -- inc2_xhl:: ; (hl) += 2 mod af -- -- hl -- for pointers inc4_xhl:: ; (hl) += 4 mod af -- -- hl -- for pointers ldpp_b_c:: ; b = c++ mod -f ++ -- -- -- ldpp_c_b:: ; c = b++ mod -f ++ -- -- -- ldpp_e_b:: ; e = b++ mod -f +- -+ -- -- ldpp_e_c:: ; e = c++ mod -f -+ -+ -- -- ldpp_l_b:: ; l = b++ mod -f +- -- -+ -- ldpp_l_c:: ; l = c++ mod -f -+ -- -+ -- ldpp_de_bc:: ; de = bc++ mod -- ++ ++ -- -- ldpp2_de_bc:: ; de = bc++ mod -- ++ ++ -- -- for word pointers ldpp4_de_bc:: ; de = bc++ mod -- ++ ++ -- -- for long pointers ldpp_hl_bc:: ; hl = bc++ mod -- ++ -- ++ -- ldpp2_hl_bc:: ; hl = bc++ mod -- ++ -- ++ -- for word pointers inc2_bc:: ; bc += 2 mod -- ++ -- -- -- for word pointers inc_bc:: ; bc += 1 mod -- ++ -- -- -- ldpp4_hl_bc:: ; hl = bc++ mod -- ++ -- ++ -- for long pointers inc4_bc:: ; bc += 4 mod -- ++ -- -- -- for long pointers ppld_b_c:: ; b = ++c mod -f ++ -- -- -- ld_b_c:: ; b = c mod -- +- -- -- -- ppld_c_b:: ; c = ++b mod -f -+ -- -- -- ld_c_b:: ; c = b mod -- -+ -- -- -- ppld_e_b:: ; e = ++b mod -f +- -+ -- -- ld_e_b:: ; e = b mod -- -- -+ -- -- ppld_e_c:: ; e = ++c mod -f -+ -+ -- -- ppld_l_b:: ; l = ++b mod -f +- -- -+ -- ld_l_b:: ; l = b mod -- -- -- -+ -- ppld_l_c:: ; l = ++c mod -f -+ -- -+ -- pp4ld_de_bc:: ; de = ++bc mod -- ++ ++ -- -- for long pointer pp2ld_de_bc:: ; de = ++bc mod -- ++ ++ -- -- for word pointer ppld_de_bc:: ; de = ++bc mod -- ++ ++ -- -- pp4ld_hl_bc:: ; hl = ++bc mod -- ++ -- ++ -- for long pointer pp2ld_hl_bc:: ; hl = ++bc mod -- ++ -- ++ -- for word pointer ppld_hl_bc:: ; hl = ++bc mod -- ++ -- ++ -- ldpp_l_xhl:: ; l = (hl)++ mod -f -- -- -+ -- ppld_l_xhl:: ; l = ++(hl) mod -f -- -- -+ -- ldpp2_hl_xhl:: ; hl = (hl)++ mod af -- -- ++ -- for word pointer ldpp4_hl_xhl:: ; hl = (hl)++ mod af -- -- ++ -- for long pointer ldpp_hl_xhl:: ; hl = (hl)++ mod af -- -- ++ -- pp4ld_hl_xhl:: ; hl = ++(hl) mod af -- -- ++ -- for long pointer pp2ld_hl_xhl:: ; hl = ++(hl) mod af -- -- ++ -- for word pointer ppld_hl_xhl:: ; hl = ++(hl) mod af -- -- ++ -- dec_b:: ; b -= 1 mod -f +- -- -- -- dec_c:: ; c -= 1 mod -f -+ -- -- -- dec_l:: ; l -= 1 mod -f -- -- -+ -- dec4_hl:: ; hl -= 4 mod af -- -- ++ -- for long pointer dec2_hl:: ; hl -= 2 mod -- -- -- ++ -- for pointer dec_hl:: ; hl -= 1 mod -- -- -- ++ -- dec_xhl.b:: ; (hl) -= 1 mod -f -- -- -- -- dec_xhl.w:: ; (hl) -= 1 mod af -- -- hl -- dec2_xhl:: ; (hl) -= 2 mod af -- -- hl -- dec4_xhl:: ; (hl) -= 4 mod af -- -- hl -- ldmm_b_c:: ; b = c-- mod -f ++ -- -- -- ldmm_c_b:: ; c = b-- mod -f ++ -- -- -- ldmm_e_b:: ; e = b-- mod -f +- -+ -- -- ldmm_e_c:: ; e = c-- mod -f -+ -+ -- -- ldmm_l_b:: ; l = b-- mod -f +- -- -+ -- ldmm_l_c:: ; l = c-- mod -f -+ -- -+ -- ldmm_de_bc:: ; de = bc-- mod -- ++ ++ -- -- ldmm2_de_bc:: ; de = bc-- mod -- ++ ++ -- -- for word pointer ldmm4_de_bc:: ; de = bc-- mod af ++ ++ -- -- for long pointer ldmm_hl_bc:: ; hl = bc-- mod -- ++ -- ++ -- ldmm2_hl_bc:: ; hl = bc-- mod -- ++ -- ++ -- for word pointer dec2_bc:: ; bc -= 2 mod -- ++ -- -- -- for word pointer dec_bc:: ; bc -= 1 mod -- ++ -- -- -- ldmm4_hl_bc:: ; hl = bc-- mod af ++ -- ++ -- for long pointer dec4_bc:: ; bc -= 4 mod af ++ -- -- -- for long pointer mmld_b_c:: ; b = --c mod -f ++ -- -- -- mmld_c_b:: ; c = --b mod -f ++ -- -- -- mmld_e_b:: ; e = --b mod -f +- -+ -- -- mmld_e_c:: ; e = --c mod -f -+ -+ -- -- mmld_l_b:: ; l = --b mod -f +- -- -+ -- mmld_l_c:: ; l = --c mod -f -+ -- -+ -- mm4ld_de_bc:: ; de = --bc mod -- ++ ++ -- -- for long pointers mm2ld_de_bc:: ; de = --bc mod -- ++ ++ -- -- for word pointers mmld_de_bc:: ; de = --bc mod -- ++ ++ -- -- mm4ld_hl_bc:: ; hl = --bc mod -- ++ -- ++ -- for long pointers mm2ld_hl_bc:: ; hl = --bc mod -- ++ -- ++ -- for word pointers mmld_hl_bc:: ; hl = --bc mod -- ++ -- ++ -- ldmm_l_xhl:: ; l = (hl)-- mod af -- -- -+ -- mmld_l_xhl:: ; l = --(hl) mod -f -- -- -+ -- ldmm4_hl_xhl:: ; hl = (hl)-- mod af -- -- ++ -- for long pointer ldmm2_hl_xhl:: ; hl = (hl)-- mod af -- -- ++ -- for word pointer ldmm_hl_xhl:: ; hl = (hl)-- mod af -- -- ++ -- mm4ld_hl_xhl:: ; hl = --(hl) mod af -- -- ++ -- for long pointer mm2ld_hl_xhl:: ; hl = --(hl) mod af -- -- ++ -- for word pointer mmld_hl_xhl:: ; hl = --(hl) mod af -- -- ++ -- sign_l:: ; l = sign(l) mod af -- -- -+ -- sign_hl:: ; l = sign(hl) mod -f -- -- h+ -- abs_hl:: ; hl = abs(hl) mod af -- -- ++ -- abs_l:: ; l = abs(l) mod af -- -- -+ -- neg_l:: ; l = -l mod af -- -- -+ -- cpl_hl.l:: ; hlhl = ~hlhl mod af -- -- ++ -- cpl_hl:: ; hl = ~hl mod af -- -- ++ -- cpl_l:: ; l = ~l mod af -- -- ++ -- not_hl:: ; l = !hl mod af -- -- -+ -- not_l:: ; l = !l mod -f -- -- -+ -- sl1_hl:: ; hl = hl << 1 mod -f -- -- ++ -- sru1_hl:: ; hl = hl >> 1 mod -f -- -- ++ -- srs1_hl:: ; hl = hl >> 1 mod -f -- -- ++ -- sl1_l:: ; l = l << 1 mod -f -- -- -+ -- sru1_l:: ; l = l >> 1 mod -f -- -- -+ -- srs1_l:: ; l = l >> 1 mod -f -- -- -+ -- sl1_b:: ; b = b << 1 mod -f +- -- -- -- sru1_b:: ; b = b >> 1 mod -f +- -- -- -- srs1_b:: ; b = b >> 1 mod -f +- -- -- -- sl1_c:: ; c = c << 1 mod -f -+ -- -- -- sru1_c:: ; c = c >> 1 mod -f -+ -- -- -- srs1_c:: ; c = c >> 1 mod -f -+ -- -- -- sl1_bc:: ; bc = bc << 1 mod -f ++ -- -- -- sru1_bc:: ; bc = bc >> 1 mod -f ++ -- -- -- srs1_bc:: ; bc = bc >> 1 mod -f ++ -- -- -- sl1_xhl.b:: ; (hl) <<= 1 mod -f -- -- -- -- sru1_xhl.b:: ; (hl) >>= 1 mod -f -- -- -- -- srs1_xhl.b:: ; (hl) >>= 1 mod -f -- -- -- -- sl1_xhl.w:: ; (hl) <<= 1 mod -f -- -- hl -- sru1_xhl.w:: ; (hl) >>= 1 mod -f -- -- -- -- srs1_xhl.w:: ; (hl) >>= 1 mod -f -- -- -- -- sli_hl:: ; hl = hl << n mod af -- de ++ -- sl_hl_e:: ; hl = hl << e mod af -- -- ++ -- srui_hl:: ; hl = hl >> n mod af -- de ++ -- sru_hl_e:: ; hl = hl >> e mod af -- -- ++ -- srsi_hl:: ; hl = hl >> n mod af -- de ++ -- srs_hl_e:: ; hl = hl >> e mod af -- -- ++ -- sli_l:: ; l = l << n mod af -- de -+ -- sl_l_e:: ; l = l << e mod af -- -- -+ -- srui_l:: ; l = l >> n mod af -- de -+ -- sru_l_e:: ; l = l >> e mod af -- -- -+ -- srsi_l:: ; l = l >> n mod af -- de -+ -- srs_l_e:: ; l = l >> e mod af -- -- -+ -- sub_b_c:: ; b -= c mod af +- -- -- -- sub_b_l:: ; b -= l mod af +- -- -- -- sub_c_b:: ; c -= b mod af -+ -- -- -- sub_c_l:: ; c -= l mod af -+ -- -- -- sub_bc_hl:: ; bl -= hl mod af ++ -- -- -- sub_l_b:: ; l -= b mod af -- -- -+ -- sub_l_c:: ; l -= c mod af -- -- -+ -- sub_hl_bc:: ; hl -= bc mod -f -- -- ++ -- sub_xhl_b:: ; (hl) -= b mod af -- -- -- -- sub_xhl_c:: ; (hl) -= c mod af -- -- -- -- sub_xhl_bc:: ; (hl) -= bc mod af -- -- hl -- sub_l_e:: ; l -= e mod af -- -- -+ -- sub_hl_de:: ; hl -= de mod -f -- -- ++ -- sub_xhl_e:: ; (hl) -= e mod af -- -- -- -- sub_xhl_de:: ; (hl) -= de mod af -- -- hl -- rsub.wbu:: ; hl = de - l mod af -- de ++ -- sub.wbu:: ; hl = hl - e mod af -- -- ++ -- rsub.bwu:: ; hl = e - hl mod af -- de ++ -- sub.bwu:: ; hl = l - de mod af -- -- ++ -- rsub.wbs:: ; hl = de - l mod af -- de ++ -- sub.wbs:: ; hl = hl - e mod af -- d- ++ -- rsub.bws:: ; hl = e - hl mod af -- de ++ -- sub.bws:: ; hl = l - de mod af -- -- ++ -- andi_b:: ; b &= n.hi mod af +- -- -- -- andi_c:: ; c &= n.hi mod af -+ -- -- -- andi_l:: ; l &= n.hi mod af -- -- -+ -- andi_e:: ; e &= n.hi mod af -- -+ -- -- and_b_c:: ; b = b & c mod af +- -- -- -- and_b_l:: ; b = b & l mod af +- -- -- -- and_c_b:: ; c = c & b mod af -+ -- -- -- andi_hl:: ; hl = hl & nn mod af -- de ++ -- and_hl_de:: ; hl = hl & de mod af -- -- ++ -- and_l_e:: ; l = l & e mod af -- -- -+ -- andi_bc:: ; bc = bc & nn mod af ++ -- hl -- and_bc_hl:: ; bc = bc & hl mod af ++ -- -- -- and_c_l:: ; c = c & l mod af -+ -- -- -- and_hl_bc:: ; hl = hl & bc mod af -- -- ++ -- and_l_c:: ; l = l & c mod af -- -- -+ -- and_l_b:: ; l = l & b mod af -- -- -+ -- andi_xhl.b:: ; (hl) &= n mod af -- de -- -- and_xhl_e:: ; (hl) &= e mod af -- -- -- -- and_xhl_bc:: ; (hl) &= bc mod af -- -- hl -- and_xhl_b:: ; (hl) &= b mod af -- -- -- -- and_xhl_c:: ; (hl) &= c mod af -- -- -- -- andi_xhl.l:: ; (hl) &= nn.l mod af -- de hl -- andi_xhl.w:: ; (hl) &= nn mod af -- de hl -- and_xhl_de:: ; (hl) &= de mod af -- -- hl -- and.bw:: ; hl = l & de mod af -- -- ++ -- and.wb:: ; hl = hl & e mod af -- -- ++ -- xori_b:: ; b = b ^ n.hi mod af +- -- -- -- xori_c:: ; c = c ^ n.hi mod af -+ -- -- -- xori_l:: ; l = l ^ n.hi mod af -- -- -+ -- xori_e:: ; e = e ^ n.hi mod af -- -+ -- -- xor_b_c:: ; b = b ^ c mod af +- -- -- -- xor_b_l:: ; b = b ^ l mod af +- -- -- -- xor_c_b:: ; c = c ^ b mod af -+ -- -- -- xori_hl.lw:: ; hlhl = hlhl ^ nn mod af -- de ++ -- xori_hl:: ; hl = hl ^ nn mod af -- de ++ -- xor_hl_de.lw:: ; hlhl = hlhl ^ de mod af -- -- ++ -- xor_hl_de:: ; hl = hl ^ de mod af -- -- ++ -- xor_l_e:: ; l = l ^ e mod af -- -- -+ -- xori_bc:: ; bc = bc ^ nn mod af ++ -- hl -- xor_bc_hl:: ; bc = bc ^ hl mod af ++ -- -- -- xor_c_l:: ; c = c ^ l mod af -+ -- -- -- xor_hl_bc:: ; hl = hl ^ bc mod af -- -- ++ -- xor_l_c:: ; l = l ^ c mod af -- -- -+ -- xor_l_b:: ; l = l ^ b mod af -- -- -+ -- xori_xhl.b:: ; (hl) ^= n mod af -- de -- -- xor_xhl_e:: ; (hl) ^= e mod af -- -- -- -- xor_xhl_bc:: ; (hl) ^= bc mod af -- -- hl -- xor_xhl_b:: ; (hl) ^= b mod af -- -- -- -- xor_xhl_c:: ; (hl) ^= c mod af -- -- -- -- xori_xhl.l:: ; (hl) ^= nn.l mod af -- de hl -- xori_xhl.w:: ; (hl) ^= nn mod af -- de hl -- xor_xhl_de:: ; (hl) ^= de mod af -- -- hl -- xor.bw:: ; hl = l ^ de mod af -- -- -+ -- xor.wb:: ; hl = hl ^ e mod af -- -- -+ -- same as xor_l_e ori_b:: ; b = b | n.hi mod af +- -- -- -- ori_c:: ; c = c | n.hi mod af -+ -- -- -- ori_l:: ; l = l | n.hi mod af -- -- -+ -- ori_e:: ; e = e | n.hi mod af -- -+ -- -- or_b_c:: ; b = b | c mod af +- -- -- -- or_b_l:: ; b = b | l mod af +- -- -- -- or_c_b:: ; c = c | b mod af -+ -- -- -- ori_hl.lw:: ; hlhl = hlhl | nn mod af -- de ++ -- ori_hl:: ; hl = hl | nn mod af -- de ++ -- or_hl_de.lw:: ; hlhl = hlhl | de mod af -- -- ++ -- or_hl_de:: ; hl = hl | de mod af -- -- ++ -- or_l_e:: ; l = l | e mod af -- -- -+ -- ori_bc:: ; bc = bc | nn mod af ++ -- hl -- or_bc_hl:: ; bc = bc | hl mod af ++ -- -- -- or_c_l:: ; c = c | l mod af -+ -- -- -- or_hl_bc:: ; hl = hl | bc mod af -- -- ++ -- or_l_c:: ; l = l | c mod af -- -- -+ -- or_l_b:: ; l = l | b mod af -- -- -+ -- ori_xhl.b:: ; (hl) |= n mod af -- de -- -- or_xhl_e:: ; (hl) |= e mod af -- -- -- -- or_xhl_bc:: ; (hl) |= bc mod af -- -- hl -- or_xhl_b:: ; (hl) |= b mod af -- -- -- -- or_xhl_c:: ; (hl) |= c mod af -- -- -- -- ori_xhl.l:: ; (hl) |= nn.l mod af -- de hl -- ori_xhl.w:: ; (hl) |= nn mod af -- de hl -- or_xhl_de:: ; (hl) |= de mod af -- -- hl -- or.bw:: ; hl = l | de mod af -- -- -+ -- or.wb:: ; hl = hl | e mod af -- -- -+ -- same as or_l_e muli_hl:: ; hl = hl * nn mod af -- de ++ -- mul_hl_de:: ; hl = hl * de mod af -- de ++ -- muli_hl.wbs:: ; hl = hl * n8 mod af -- de ++ -- mul_hl_e.wbs:: ; hl = hl * e mod af -- de ++ -- mul_l_de.bws:: ; hl = l * de mod af -- de ++ -- muli_l:: ; l = l * n8 mod af -- de h+ -- muli_hl.wbu:: ; hl = hl * u8 mod af -- de ++ -- mul_hl_e.wbu:: ; hl = hl * e mod af -- de ++ -- mul_l_de.bwu:: ; hl = l * de mod af -- -- ++ -- mul_l_e:: ; l = l * e mod af -- -- ++ -- mul_xhl_e.wbs:: ; (hl).w *= $ff00+e mod af -- de ++ -- mul_xhl_e.wbu:: ; (hl).w *= e mod af -- de ++ -- muli_xhl.w:: ; (hl).w *= nn mod af -- de ++ -- mul_xhl_de:: ; (hl).w *= de mod af -- de ++ -- muli_xhl.b:: ; (hl).b *= n8 mod af -- de ++ -- mul_xhl_e:: ; (hl) *= e mod af -- de ++ -- mul10_hl:: ; hl = hl * 10 mod -f -- de ++ -- mul10_l:: ; l = l * 10 mod af -- -- -+ -- neg_hl:: ; hl = -hl mod af -- -- ++ -- neg_de:: ; de = -de mod af -- ++ -- -- divs_l_e:: ; l,e = l/e mod af -- d+ h+ -- restore_bc unoptimized divu_l_e:: ; l,e = l/e mod af -- d+ h+ -- restore_bc unoptimized divi_hl.s:: ; hl,de = hl/nn mod af -- ++ ++ -- restore_bc ~1300 - 1650cc divs_hl_de:: ; hl,de = hl/de mod af -- ++ ++ -- restore_bc ~1300 - 1650cc divi_hl.u:: ; hl,de = hl/nn mod af -- ++ ++ -- restore_bc ~1300cc divu_hl_de:: ; hl,de = hl/de mod af -- ++ ++ -- restore_bc ~1300cc divu_xhl_de:: ; (hl) = (hl)/de mod af -- de hl -- divs_xhl_de:: ; (hl) = (hl)/de mod af -- de hl -- divu_xhl_e:: ; (hl),e = (hl)/e mod af -- d+ hl -- divs_xhl_e:: ; (hl),e = (hl)/e mod af -- d+ hl -- divu10_hl:: ; hl,de = hl/10 mod af -- ++ ++ -- 669cc cmpi.s:: ; c,z = hl - nn mod a+ -- de -- -- cmp.s:: ; c,z = hl - de mod a+ -- -- -- -- cmp.su:: ; c,z = hl.s - de.u mod a+ -- -- -- -- cmp.us:: ; c,z = hl.u - de.s mod a+ -- -- -- -- cmpi.u:: ; c,z = hl - nn mod a+ -- de -- -- cmp.u:: ; c,z = hl - de mod a+ -- -- -- -- cmp0.s:: ; c,z = hl - 0 mod a+ -- -- -- -- cmp0.u:: ; c,z = hl - 0 mod a+ -- -- -- -- cmpi.sb:: ; c,z = l - n mod a+ -- de -- -- cmp.sb:: ; c,z = l - n mod a+ -- -- -- -- cmp0.sb:: ; c,z = l - 0 mod a+ -- -- -- -- cmp.sub:: ; c,z = l.s - e.u mod a+ -- -- -- -- cmp.usb:: ; c,z = l.u - e.s mod a+ -- -- -- -- cmpi.ub:: ; c,z = l - n mod a+ -- de -- -- cmp.ub:: ; c,z = l - e mod a+ -- -- -- -- cmp0.ub:: ; c,z = l - 0 mod a+ -- -- -- -- atoi.l:: ; hl.l = eval(hl++) mod af -- de ++ -- restore_sp atou.l:: ; hl.l = eval(hl++) mod af -- de ++ -- restore_sp atoi:: ; hl = eval(hl++) mod af -- de ++ -- restore_sp atou:: ; hl = eval(hl++) mod af -- de ++ -- restore_sp utoa.b:: ; (de++) = str(l) mod af -- de hl ix restore_sp itoa.b:: ; (de++) = str(l) mod af -- de hl ix restore_sp itoa:: ; (de++) = str(hl) mod af -- de hl ix restore_sp utoa:: ; (de++) = str(hl) mod af -- de hl ix restore_sp rand:: ; hl = random_number mod af -- de ++ -- randomize:: ; randomize mod af -- -- hl -- min.sb:: ; l = min(l,e) mod af -- -- -+ -- min.ub:: ; l = min(l,e) mod af -- -- -+ -- max.sb:: ; l = max(l,e) mod af -- -- -+ -- max.ub:: ; l = max(l,e) mod af -- -- -+ -- min.s:: ; hl = min(hl,de) mod af -- de ++ -- min.u:: ; hl = min(hl,de) mod -f -- de ++ -- max.s:: ; hl = max(hl,de) mod af -- de ++ -- max.u:: ; hl = max(hl,de) mod af -- de ++ -- min.sl:: ; hlhl=min(hlhl,dede) mod af -- de ++ -- min.ul:: ; hlhl=min(hlhl,dede) mod af -- de ++ -- max.sl:: ; hlhl=max(hlhl,dede) mod af -- de ++ -- max.ul:: ; hlhl=max(hlhl,dede) mod af -- de ++ -- memset:: ; de * (hl++) = (iy) mod af -- de -- -- memset_c:: ; de * (hl++) = c mod af -- de -- -- memclr:: ; de * (hl++) = 0 mod af -- de -- -- memset_a:: ; de * (hl++) = a mod -f -- de -- -- memcpy:: ; (iy) * (hl++)=(de++) mod af -- de hl -- restore_bc 98 + n*21cc memcpy_bc:: ; bc * (hl++)=(de++) mod af bc de hl -- func_max_level:: = 0 ; max. return level of FUNCtions svar_max_bytes:: = 0 ; total required static byte variables svar_max_words:: = 0 ; total required static word variables svar_max_longs:: = 0 ; total required static long variables lvar_max_idx:: = 0 proc_return:: ; return from proc mod -f ++ de -- -- 101cc proc_return_void:: ; return from proc mod -f ++ -- hl -- 93cc rop_return_area:: rop_pagebits:: equ 5 rop_repair::