ld h,page0
jp (hl)
+imm_call:
+ push de
+ dec h ; page 0
page0_imm_call:
ld a,(bc)
inc bc
jp (hl)
page0_call:
- pop hl
+ pop de
+_call:
push bc
- ld c,l
- ld b,h
+ ld c,e
+ ld b,d
inc bc
ld l,(hl)
- ld h,page0
jp (hl)
page0_imm_jfalse:
ld l,a
jp (hl)
- .org page0 * 0x100 + 0x83
+ .org page0 * 0x100 + 0x88
-page0_imm_stkadj:
-imm_stkadj:
+imm_stkptr:
+ push de
+page0_imm_stkptr:
ld a,(bc)
inc bc
ld l,a
inc bc
ld h,a
.db 0x3e ; ld a,
-page0_stkadj:
+page0_stkptr:
pop hl
-stkadj:
+stkptr:
add hl,sp
- ld sp,hl
+ ex de,hl
ld a,(bc)
inc bc
ld l,a
- ld h,page0
+ ld h,page1
jp (hl)
-page0_imm_stkptr:
-imm_stkptr:
+page0_ret:
+ pop bc
+page0_imm_stkadj:
+imm_stkadj:
ld a,(bc)
inc bc
ld l,a
inc bc
ld h,a
.db 0x3e ; ld a,
-page0_stkptr:
+page0_stkadj:
pop hl
-stkptr:
+stkadj:
add hl,sp
- ex de,hl
+ ld sp,hl
ld a,(bc)
inc bc
ld l,a
- ld h,page1
+ ld h,page0
jp (hl)
-page0_imm_stkld_w:
imm_stkld_w:
+ push de
+page0_imm_stkld_w:
ld a,(bc)
inc bc
ld l,a
ld a,(bc)
inc bc
ld h,a
+stkst_entry:
add hl,sp
ld (hl),e
inc hl
pop de
stkst_w:
pop hl
- add hl,sp
- ld (hl),e
- inc hl
- ld (hl),d
- ld a,(bc)
- inc bc
- ld l,a
- ld h,page0
- jp (hl)
+; add hl,sp
+; ld (hl),e
+; inc hl
+; ld (hl),d
+; ld a,(bc)
+; inc bc
+; ld l,a
+; ld h,page0
+; jp (hl)
+; the non-immediate stack load/store is hardly ever used and only for symmetry
+ jr stkst_entry
page0_imm_w:
inc h ; page1
.org page1 * 0x100
+page1_imm_stkptr:
+ jr imm_stkptr
+page1_stkptr:
+ ex de,hl
+ jr stkptr
page1_imm_stkadj:
push de
jr imm_stkadj
page1_stkadj:
ex de,hl
jr stkadj
-page1_imm_stkptr:
- push de
- jr imm_stkptr
-page1_stkptr:
- ex de,hl
- jr stkptr
page1_imm_stkld_w:
- push de
jr imm_stkld_w
page1_stkld_w:
ex de,hl
dec h ; page 0
jp (hl)
+page1_imm_call:
+ jp imm_call
+
+page1_call:
+ dec h ; page 0
+ jp _call
+
page1_imm_and_w:
ld a,(bc)
inc bc