Hostages_hd.asm (7,989 bytes)
2013-10-13 19:22
;*---------------------------------------------------------------------------
; :Program. elvira.asm
; :Contents. Slave for "Elvira" from Accolade
; :Author. Wepl
; :Original v1
; :Version. $Id: elvira.asm 1.1 2001/11/10 21:13:07 wepl Exp wepl $
; :History. 03.08.01 started
; 10.11.01 beta version for whdload-dev ;)
; :Requires. -
; :Copyright. Public Domain
; :Language. 68000 Assembler
; :Translator. Devpac 3.14, Barfly 2.9
; :To Do.
;---------------------------------------------------------------------------*
INCDIR Include:
INCLUDE whdload.i
INCLUDE whdmacros.i
INCLUDE lvo/dos.i
; include lvos.i
IFD BARFLY
OUTPUT "sdh2:hostages/hostages.Slave"
BOPT O+ ;enable optimizing
BOPT OG+ ;enable optimizing
BOPT ODd- ;disable mul optimizing
BOPT ODe- ;disable mul optimizing
BOPT w4- ;disable 64k warnings
SUPER
ENDC
;============================================================================
CHIPMEMSIZE = $80000
FASTMEMSIZE = $0000
NUMDRIVES = 1
WPDRIVES = %1111
DISKSONBOOT
;HRTMON
;MEMFREE = $100
;NEEDFPU
;SETPATCH
;============================================================================
KICKSIZE = $40000 ;34.005
BASEMEM = CHIPMEMSIZE
EXPMEM = KICKSIZE+FASTMEMSIZE
;============================================================================
_base SLAVE_HEADER ;ws_Security + ws_ID
dc.w 14 ;ws_Version
dc.w WHDLF_NoError|WHDLF_EmulPriv|WHDLF_NoDivZero ;ws_flags
dc.l BASEMEM ;ws_BaseMemSize
dc.l 0 ;ws_ExecInstall
dc.w _start-_base ;ws_GameLoader
dc.w _data-_base ;ws_CurrentDir
dc.w 0 ;ws_DontCache
_keydebug dc.b 0 ;ws_keydebug
_keyexit dc.b $5d ;ws_keyexit = F10
_expmem dc.l EXPMEM ;ws_ExpMem
dc.w _name-_base ;ws_name
dc.w _copy-_base ;ws_copy
dc.w _info-_base ;ws_info
;============================================================================
IFD BARFLY
DOSCMD "WDate >T:date"
ENDC
_name dc.b "Hostages/Operation Jupiter",0
_copy dc.b "1988 Infogrames",0
_info dc.b "adapted by C-Fou! using Wepl's KickEmul",10
dc.b "Version 1.1 "
IFD BARFLY
INCBIN "T:date"
ENDC
dc.b 0
_data dc.b "data",0
_runit dc.b "apro1.",0
EVEN
_runitb dc.b "APRO1.",0
EVEN
;============================================================================
_start ; A0 = resident loader
;============================================================================
;initialize kickstart and environment
bra _boot
_cb_dosLoadSeg
move.l d0,d7
lsl.l #2,d0
move.l d0,a0
moveq #0,d0
add.b (a0)+,d0
subq.w #1,d0
lea (_runit),a1
.cmp cmp.b (a0)+,(a1)+
dbne d0,.cmp
bne .no
lsl.l #2,d1
move.l d1,a0
bsr crack
.no
move.l d7,d0
lsl.l #2,d0
move.l d0,a0
moveq #0,d0
add.b (a0)+,d0
subq.w #1,d0
lea (_runitb),a1
.cmpb cmp.b (a0)+,(a1)+
dbne d0,.cmpb
bne .nob
lsl.l #2,d1
move.l d1,a0
bsr crack
.nob
rts
;debugrom:
cmp.l #$0,a0
beq .skip2
move.b 0(a0,d2.l),d3
.skip2
move.l d3,d1
jmp (a6)
debugrom:
cmp.l #$ffffffff,d2
bne .skip
move.l #$00,d2
.skip
move.b 0(a0,d2.l),d3
move.l d3,d1
jmp (a6)
crack
movem.l d0-d7/a0-a6,-(a7)
move.l _expmem(pc),a2
add.l #$3568c,a2
lea debugrom(pc),a3
move.w #$4ef9,(a2)+ ; 1 acess FALSE ???? in rom
move.l a3,(a2)
move.l a0,a1
t:
; bra t
;;;;;;;;;;;;;;;;******* Crack hostages ******************
move.l a1,d0
add.l #$17e20-$17924,d0
move.l d0,a0
cmp.l #$80fc0000,(a0)
bne .pas
; move.l #$4e714e71,(a0); crack1 div / 0
.pas
move.l a1,d0
add.l #$1d39c-$17924,d0
move.l d0,a0
cmp.l #$4eba2360,(a0)
bne .pas1
move.l #$4e714e71,(a0); crack1
.pas1
move.l a1,d0
add.l #$1d3a6-$17924,d0
move.l d0,a0
cmp.l #$61442438,(a0)
bne .pas2
move.w #$4e71,(a0); crack1
.pas2
move.l a1,d0
add.l #$1d3ac-$17924,d0
move.l d0,a0
cmp.l #$bc7c32dc,(a0)
bne .pas3
move.w #$3c3c,(a0); crack1 ; d6 => compteur
.pas3
;******************** operation jupiter *****************
move.l a1,d0
add.l #$17ea8-$17924,d0
move.l d0,a0
cmp.l #$80fc0000,(a0)
bne .pasb
; move.l #$4e714e71,(a0); crack1 div / 0
.pasb
move.l a1,d0
add.l #$1d420-$17924,d0
move.l d0,a0
cmp.l #$4eba2360,(a0)
bne .pas1b
move.l #$4e714e71,(a0); crack1
.pas1b
move.l a1,d0
add.l #$1d42a-$17924,d0
move.l d0,a0
cmp.l #$61442438,(a0)
bne .pas2b
move.w #$4e71,(a0); crack1
.pas2b
move.l a1,d0
add.l #$1d430-$17924,d0
move.l d0,a0
cmp.l #$bc7c32dc,(a0)
bne .pas3b
move.w #$3c3c,(a0); crack1 ; d6 => compteur
.pas3b
move.l a1,d0
add.l #$17e20-$17924,d0
move.l d0,a0
cmp.l #$80fc0000,(a0)
bne .past
; move.l #$4e714e71,(a0); crack1 div / 0
.past
move.l a1,d0
add.l #$1d398-$17924,d0
move.l d0,a0
cmp.l #$4eba2360,(a0)
bne .pas1t
move.l #$4e714e71,(a0); crack1
.pas1t
move.l a1,d0
add.l #$1d3a2-$17924,d0
move.l d0,a0
cmp.l #$61442438,(a0)
bne .pas2t
move.w #$4e71,(a0); crack1
.pas2t
move.l a1,d0
add.l #$1d3a8-$17924,d0
move.l d0,a0
cmp.l #$bc7c32dc,(a0)
bne .pas3t
move.w #$3c3c,(a0); crack1 ; d6 => compteur
.pas3t
movem.l (a7)+,d0-d7/a0-a6
rts
;============================================================================
_dosname dc.b "dos.library",0
EVEN
;============================================================================
INCLUDE osemu:kick13.s
;============================================================================
END