Based on the same-titled movie, Arachnophobia puts you on the role of a pest control officer with the goal killing the entire population of an invasive and lethal South American spider species across the United States.
Uncompiled Source Code#
A number of source code fragments can be found within the game's disks, mainly Disk A:
Disk A#
Track $00#
Sectors 6 and 8
push de
; ld de,mask
bcfon:
push bc
ld l,(ix)
ld h,(ix+1)
ld bc,(avdeb)
ld b,0
add hl,bc
ld bc,(nboct)
ld b,0
and a
jp z,sovfon
ex de,hl
ldir
push hl
pop de
jp apldir
sovfon:
ldir
apldir:
pop bc
inc ix
inc ix
djnz bcfon
pop de
ret
; ** proc de pause **
pause:
push af
push hl
push de
tpbc:
push bc
call #bd0d
ld a,l
pop bc
cp b
jp m,tpbc
ld l,0
call #bd10
pop de
pop hl
pop af
ret
; ** proc lang affiche 1 **
lang2:
; IX = text?_?
; DY = 1 ere ligne d'a
Track $01#
Sector 6
l
noadd:
add hl,hl
djnz div16
ld a,l
ret
u #c000
mask:equ #1000
ecr2:equ #2
Sector 7
spr
call dkload
call dkclos
ld hl,lasprv
ld b,(hl)
ld hl,titre
ld de,buf
call dkopen
ld hl,spitre
call dkload
call dkclos
ld hl,spitre
ld (bssprv),hl
;
;** page 4 : bon code **
ld hl,lasprv
ld b,(hl)
ld hl,pagef
ld iy,ecr2
call decomp
ld a,(langue)
cp 4
jp nz,pital4
ld ix,txt4_4
ld iy,tx4
jp fpag4
pital4:
cp 3
jp nz,pangl4
ld ix,txt4_3
ld iy,tx3
jp fpag4
pangl4:
cp 2
jp nz,pfr4
ld ix,txt4_2
ld iy,tx2
jp fpag4
pfr4:
cp 1
jp nz,pesp4
ld ix,txt4_1
ld iy,tx1
jp f
Track $08#
Sector 1
#8800
ret
:* a0ðul\u le pr
Sector 2
tbarai:defb 13,4,11,5,1,14,9,7,6,3,2,6,1,5,0
defb 13,6,12,4,10,14,10,8,1,2,11,7,9,0,5
chaine:defm "win00.c+"
atitre:defm "atit.bin"
titre:defm "titr.bin"
acode:defm "acod.bin"
code:defm "code.bin"
page2:defm "page2.c+"
page3:defm "page3.c+"
page4b:defm "pag4b.c+"
page4f:defm "pag4f.c+"
page5:defm "page5.c+"
drapo:defm "drapo.c+"
jeu:defm "prgville.bin"
header:defw 0
lasprv:defb 8
lxy:defw 0
adrspr:defw 0
coul15:defb 0
dx:defw 0
dy:defw 0
bssprv:defw 0
avdeb:defb 0
nboct:defb 0
coda
Track $0C#
Sector 2
asdr:
ld a,(hl)
and %10101010
or c
ld (hl),a
jp asst
asgc:
ld a,(hl)
and %01010101
or c
ld (hl),a
asst:
inc hl
inc de
djnz asbcx
dec (ix+1)
ret z
inc iy
inc iy
jp asbcy
; ** memorise le fond du sprite *
; ix = adresse 1er ligne ds table
; a = 0 si sauve dans masque
; b = nombre de lignes
fonsov:
push de
; ld de,mask
bcfon:
push bc
ld l,(ix)
ld h,(ix+1)
ld bc,(avdeb)
ld b,0
add hl,bc
ld bc,(nboct)
ld b,0
and a
jp z,sovfon
ex de,hl
ldir
push hl
pop de
jp apl
Sector 4
tbarai:defb 13,4,11,5,1,14,9,7,6,3,2,6,1,5,0
defb 13,6,12,4,10,14,10,8,1,2,11,7,9,0,5
chaine:defm "win00.c+"
atitre:defm "atit.bin"
titre:defm "titr.bin"
aquit:defm "aqui.bin"
quit:defm "quit.bin"
pagef:defm "pagef.c+"
jeu:defm "prgville.bin"
chnutz:defm "chnutz.bin"
header:defw 0
lasprv:defb 8
lxy:defw 0
adrspr:defw 0
coul15:defb 0
dx:defw 0
dy:defw 0
bssprv:defw 0
avdeb:defb 0
nboct:defb 0
quiter:defb 1
passe:defb 0
degrad:defb 2,5,11,14,20,23,26
langue:equ #41
ntown:equ #42
ara
Track $1A#
Sector 4
a
ld ix,infspr
ld de,146
add ix,de
ld l,(ix)
ld h,(ix+1)
ld (adrspr),hl
call affspr
ld a,177
ld (dy),a
ld ix,infspr
ld de,148
add ix,de
ld l,(ix)
ld h,(ix+1)
ld (adrspr),hl
call affspr
ld a,(langue)
cp 4
jp nz,pitali
ld ix,txt1_4
jp fpag2
pitali:
cp 3
jp nz,pangla
ld ix,txt1_3
jp fpag2
pangla:
cp 2
jp nz,pfranc
ld ix,txt1_2
jp fpag2
pfranc:
cp 1
jp nz,pespag
ld ix,txt1_1
jp fpag2
pespag:
ld ix,txt1_0
fpag2:
ld a,165
ld (dy),a
call lang2
ld ix,speed
ld a,7
ld (dur
Track $23#
Sector 5
pter:defw #c000
langue:equ #a501
aramor:equ #a502
hrdep:equ #a504
squeue:equ #bcaa
sampli:equ #bcbc
stone:equ #bcbf
scheck:equ #bcad
q1:equ #a400
necr:defb 1
lonfic:defw 0
palet:defb 0,2,9,11,6,8,3,13
defb 0,1,4,20,15,18,24,26
tbarai:defb 13,4,11,5,1,14,9,7,6,3,2,6,1,5,0
defb 13,6,12,4,10,14,10,8,1,2,11,7,9,0,5
chaine:defm "win00.c+"
atitre:defm "atit.bin"
titre:defm "titr.bin"
acode:defm "acod.bin"
code:defm "code.bin"
page2:defm "page2.c+"
page3:defm "page3.c+"
page4b:defm "pag4b.c+
Track $24#
Sector 4
90
codarr:equ #7400
buf:equ #8500
infspr:equ #8400
table:equ #8000
dotpos:equ #bc1d
setink:equ #bc32
dkopen:equ #bc77
dkload:equ #bc83
dkclos:equ #bc7a
setmod:equ #bc0e
getime:equ #bd0d
putime:equ #bd10
ssadrv:equ #c000
pter:defw #c000
langue:equ #41
ntown:equ #42
squeue:equ #bcaa
sampli:equ #bcbc
stone:equ #bcbf
scheck:equ #bcad
q1:equ #a400
necr:defb 1
lonfic:defw 0
palet:defb 0,2,9,11,6,8,3,13
defb 0,1,4,20,15,18,24,26
atitre:defm "atit.bin"
titre:defm "titr.bin"
jour1:defm "j
Track $27#
Sector 6
org #8e00
ent #8e00
jp debprg
incm1:defw 0
queue1:defb 1,1,1
freq:defb 0,0,0,1
duree:defb 0,
Disk B#
Disk B also contains fragments, though they appear to be part of the same source section.
m:equ #40
; ** variables **
deb
debug:equ minmem
langue:equ debug+1
ntown:equ langue+1
aramor:equ nto
setink:equ #bc32
setbor
vill.bin"
hous:defm "prghouse.bin"
win:defm "winhouse.bin"
sdxy:
Revisional Difference#
Two revisions of the game are known to exist, though the only difference seems to be that the newer one lacks the files BTITR.BIN (a duplicate of the copyright graphics on the title screen) and PRGAMSUD.BIN.
(Source: CPC-Power)