Zombie Zombie Loading Scheme

jpjp
edited February 2011 in Infoseek database
A quick check of the Zombie Zombie loader identifies it's the RAPID LOADING SYSTEM ? ESPRIT 1984

ZombieZombieLoadingScheme.png
Post edited by jp on

Comments

  • jpjp
    edited February 2011
    The only other example of the Rapid Loading System I've found is Travel With Trashman:

    TWTLoadingScheme.png
  • jpjp
    edited February 2011
    Partial in flight disassembly of the Rapid Loading System:
    ;
    ; 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
    
Sign In or Register to comment.