; ; partial disassembly of rapid loading system esprit 1984 ; as used by zombie zombie ; ; initial entry point is l_5e88 ; ; stack at l_5e82 was originally: ; ; defw $5d0f ; 5e82 0f 5d ts ; defw $168d ; 5e84 8d 16 ts ; defw $5d1d ; 5e86 1d 5d ts ; ; decrypters at l_5d0f and l_5d29 have run ; second block of encrypted code is loaded by l_5d5e ; and subsequently decrypted by l_5df9 ; ; org $5d0f ; l_5d0f: ld hl, l_5d1c ; 5d0f 21 1c 5d $0ats l_5d12: ld a, (l_5d15) ; 5d12 3a 15 5d $0dts l_5d15: xor (hl) ; 5d15 ae $07ts ld (hl), a ; 5d16 77 $07ts ld a, l ; 5d17 7d $04ts cp h ; 5d18 bc $04ts inc hl ; 5d19 23 $06ts jr nz, l_5d12 ; 5d1a 20 f6 $07/$0cts l_5d1c: ret ; 5d1c c9 $0ats push de ; 5d1d d5 $0bts push de ; 5d1e d5 $0bts ld hl, $c900 ; 5d1f 21 00 c9 $0ats ld ($5cb0), hl ; 5d22 22 b0 5c $10ts call $0066 ; 5d25 cd 66 00 $11ts pop hl ; 5d28 e1 $0ats l_5d29: ld a, (hl) ; 5d29 7e $07ts rrd ; 5d2a ed 67 $12ts inc hl ; 5d2c 23 $06ts ld a, l ; 5d2d 7d $04ts cp $5e ; 5d2e fe 5e $07ts jr nz, l_5d29 ; 5d30 20 f7 $07/$0cts ld d, iyh ; 5d32 fd 54 $08ts ld e, iyl ; 5d34 fd 5d $08ts ld hl, $0076 ; 5d36 21 76 00 $0ats add hl, de ; 5d39 19 $0bts push hl ; 5d3a e5 $0bts ret ; 5d3b c9 $0ats l_5d3c: defm "RAPID" ; 5d3c 52 41 50 49 44 ts defm " LOADING" ; 5d41 20 4c 4f 41 44 49 4e 47 ts defm " SYSTEM" ; 5d49 20 53 59 53 54 45 4d ts l_5d50: defb $7f ; 5d50 7f ts defm " ESPRIT" ; 5d51 20 45 53 50 52 49 54 ts defm " 1984 " ; 5d58 20 31 39 38 34 20 ts l_5d5e: scf ; 5d5e 37 $04ts ld a, $ff ; 5d5f 3e ff $07ts ld ix, $5b00 ; 5d61 dd 21 00 5b $0ets ld de, $01b6 ; 5d65 11 b6 01 $0ats call l_5d6e ; 5d68 cd 6e 5d $11ts jp $5e5d ; 5d6b c3 5d 5e $0ats l_5d6e: inc d ; 5d6e 14 $04ts ex af, af' ; 5d6f 08 $04ts dec d ; 5d70 15 $04ts di ; 5d71 f3 $04ts ld a, $0f ; 5d72 3e 0f $07ts out ($fe), a ; 5d74 d3 fe $0bts ld hl, l_5d7c ; 5d76 21 7c 5d $0ats jp $0561 ; 5d79 c3 61 05 $0ats l_5d7c: push af ; 5d7c f5 $0bts ld a, ($5c48) ; 5d7d 3a 48 5c $0dts and $38 ; 5d80 e6 38 $07ts rrca ; 5d82 0f $04ts rrca ; 5d83 0f $04ts rrca ; 5d84 0f $04ts out ($fe), a ; 5d85 d3 fe $0bts ld a, $7f ; 5d87 3e 7f $07ts in a, ($fe) ; 5d89 db fe $0bts l_5d8b: rra ; 5d8b 1f $04ts ei ; 5d8c fb $04ts jr c, l_5d91 ; 5d8d 38 02 $0c/$07ts l_5d8f: jr l_5d93 ; 5d8f 18 02 $0cts l_5d91: pop af ; 5d91 f1 $0ats ret ; 5d92 c9 $0ats l_5d93: call $0daf ; 5d93 cd af 0d $11ts l_5d96: ld b, $14 ; 5d96 06 14 $07ts l_5d98: ld hl, l_5d3c ; 5d98 21 3c 5d $0ats l_5d9b: ld a, (hl) ; 5d9b 7e $07ts push hl ; 5d9c e5 $0bts push bc ; 5d9d c5 $0bts l_5d9e: rst $10 ; 5d9e d7 $0bts pop bc ; 5d9f c1 $0ats pop hl ; 5da0 e1 $0ats inc hl ; 5da1 23 $06ts djnz l_5d9b ; 5da2 10 f7 $08/$0dts ld a, $0d ; 5da4 3e 0d $07ts rst $10 ; 5da6 d7 $0bts ld b, $0d ; 5da7 06 0d $07ts ld hl, l_5d50 ; 5da9 21 50 5d $0ats l_5dac: ld a, (hl) ; 5dac 7e $07ts push hl ; 5dad e5 $0bts push bc ; 5dae c5 $0bts rst $10 ; 5daf d7 $0bts pop bc ; 5db0 c1 $0ats pop hl ; 5db1 e1 $0ats inc hl ; 5db2 23 $06ts djnz l_5dac ; 5db3 10 f7 $08/$0dts l_5db5: jr l_5db5 ; 5db5 18 fe $0cts l_5db7: ld d, d ; 5db7 52 $04ts ld l, b ; 5db8 68 $04ts add a, h ; 5db9 84 $04ts defb $dd ; 5dba dd $04ts l_5dbb: call $0daf ; 5dbb cd af 0d $11ts ld b, $16 ; 5dbe 06 16 $07ts ld hl, l_5dce ; 5dc0 21 ce 5d $0ats l_5dc3: ld a, (hl) ; 5dc3 7e $07ts push hl ; 5dc4 e5 $0bts push bc ; 5dc5 c5 $0bts rst $10 ; 5dc6 d7 $0bts pop bc ; 5dc7 c1 $0ats pop hl ; 5dc8 e1 $0ats inc hl ; 5dc9 23 $06ts djnz l_5dc3 ; 5dca 10 f7 $08/$0dts l_5dcc: jr l_5dcc ; 5dcc 18 fe $0cts l_5dce: defm "CASSETTE" ; 5dce 43 41 53 53 45 54 54 45 ts defm " LOADING" ; 5dd6 20 4c 4f 41 44 49 4e 47 ts defm " ERROR" ; 5dde 20 45 52 52 4f 52 ts defm " * ESPRIT" ; 5de4 20 2a 20 45 53 50 52 49 54 ts defm " - TEL" ; 5ded 20 2d 20 54 45 4c ts defm ": 0253" ; 5df3 3a 20 30 32 35 33 ts defm " 892693" ; 5df9 20 38 39 32 36 39 33 ts l_5df9: ld hl, $5b00 ; 5e00 21 00 5b $0ats ld b, $03 ; 5e03 06 03 $07ts l_5e05: push bc ; 5e05 c5 $0bts ld b, $00 ; 5e06 06 00 $07ts l_5e08: ld a, $41 ; 5e08 3e 41 $07ts xor (hl) ; 5e0a ae $07ts ld (hl), a ; 5e0b 77 $07ts rrd ; 5e0c ed 67 $12ts nop ; 5e0e 00 $04ts inc hl ; 5e0f 23 $06ts l_5e10: djnz l_5e08 ; 5e10 10 f6 $08/$0dts pop bc ; 5e12 c1 $0ats djnz l_5e05 ; 5e13 10 f0 $08/$0dts jr l_5db7 ; 5e15 18 a0 $0cts defm "Don't" ; 5e17 44 6f 6e 27 74 ts l_5e1c: defm " bother" ; 5e1c 20 62 6f 74 68 65 72 ts defm " trying" ; 5e23 20 74 72 79 69 6e 67 ts defm " to" ; 5e2a 20 74 6f ts l_5e2d: defm " crack" ; 5e2d 20 63 72 61 63 6b ts l_5e33: defm " RAPID" ; 5e33 20 52 41 50 49 44 ts defm ". You've" ; 5e39 2e 20 59 6f 75 27 76 65 ts defm " wasted" ; 5e41 20 77 61 73 74 65 64 ts defm " enough" ; 5e48 20 65 6e 6f 75 67 68 ts defm " time" ; 5e4f 20 74 69 6d 65 ts defm " already" ; 5e54 20 61 6c 72 65 61 64 79 ts defb "." ; 5e5c 2e ts l_5e5d: jr c, $5e00 ; 5e5d 38 a1 $0c/$07ts jp l_5dbb ; 5e5f c3 bb 5d $0ats defm " You're" ; 5e62 20 59 6f 75 27 72 65 ts defm " wasting" ; 5e69 20 77 61 73 74 69 6e 67 ts defm " your" ; 5e71 20 79 6f 75 72 ts defm " time" ; 5e76 20 74 69 6d 65 ts defm " ma" ; 5e7b 20 6d 61 ts defb $00, $c9, $4a, $5d ; 5e7e 00 c9 4a 5d ts l_5e82: defw $5d28 ; 5e82 28 5d ts defw $5d5e ; 5e84 5e 5d ts defw $5d5e ; 5e86 5e 5d ts l_5e88: di ; 5e88 f3 $04ts ld sp, l_5e82 ; 5e89 31 82 5e $0ats ret ; 5e8c c9 $0ats
Comments