- call do_subexpr\r
- ret c\r
- call do_rel_op\r
- ret nc\r
- push bc\r
- push hl\r
- call do_subexpr\r
- jr c,error0\r
- ex de,hl\r
- ex (sp),hl\r
- and a\r
- sbc hl,de\r
- ld hl,0ffffh\r
- pop de\r
- ret\r
-\r
-;-------------------------------------------------------------------------------\r
-\r
-do_op_eq:\r
- jr z,l03edh\r
- jr l03ech\r
-do_op_ne:\r
- jr nz,l03edh\r
- jr l03ech\r
-do_op_le:\r
- jr z,l03edh\r
-do_op_lt:\r
- jr c,l03edh\r
- jr l03ech\r
-do_op_gt:\r
- jr z,l03ech\r
-do_op_ge:\r
- jr nc,l03edh\r
-l03ech:\r
- inc hl\r
-l03edh:\r
- and a\r
- ret\r
-do_rel_op:\r
- push hl\r
- ld hl,tab_eq_le_ge\r
- call lookupch\r
- jr nc,l041dh\r
- ld a,b\r
- or a\r
- jr z,l0411h\r
- ld a,(de)\r
- cp '='\r
- jr nz,l0406h\r
- inc de\r
- inc b\r
- inc b\r
- jr l0411h\r
-l0406h:\r
- bit 0,b\r
- jr z,l0411h\r
- cp '>'\r
- jr nz,l0411h\r
- inc de\r
- ld b,005h\r
-l0411h:\r
- ld hl,tab_func_eqlege\r
- ld a,b\r
- add a,a\r
- call add_hl_a\r
- ld c,(hl)\r
- inc hl\r
- ld b,(hl)\r
- scf\r
-l041dh:\r
- pop hl\r
- ret\r
-\r
-tab_eq_le_ge:\r
- db '=<>',0\r
-\r
-tab_func_eqlege:\r
- dw do_op_eq\r
- dw do_op_lt\r
- dw do_op_gt\r
- dw do_op_le\r
- dw do_op_ge\r
- dw do_op_ne\r
-\r
-do_subexpr:\r