home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Loadstar 73
/
073.d81
/
pipes.buddy
< prev
next >
Wrap
Text File
|
2022-08-26
|
23KB
|
1,401 lines
;
; source code for pipes peak
; by bob blackmer
;
*=$4000
;
jsr chars
lda #0
sta $dc0b
sta $dc0a
sta $dc09
sta $dc08
begin jsr reset
jsr init
jsr draw
jsr plytun
jsr prtmsg
;
loop jsr check
jsr joystk
jsr scroll
jsr cycle
jsr delay
jsr timer
jsr $ffe1
bne loop1
jmp kil
loop1 lda pos1y
cmp #6
bne qloop
lda #1
sta $d01b
inc lev
lda lev
cmp #32
bne here
jmp youwin
here jsr chime
jsr brate
jsr bonus
jsr level
jsr scroll
lda #0
sta $d01b
jsr prtmsg
jmp loop
qloop jsr $ffe4
cmp #136
bne loop2
rts
loop2 lda #0
sta $c6
lda over
beq loop
kil lda #129
sta $d404
lda #224
sta $7f8
ldy #30
ldx #255
sty $d400
loop3 jsr delay
inx
dey
sty $d401
lda #0
sta $3800,x
sta $381a,x
cpy #0
bne loop3
lda #128
sta $d404
lda $7ff
cmp #229
beq loop4
jsr clrmap
jsr init
jsr scroll
dec $7ff
lda #0
sta over
sta skor
jsr prtmsg
jmp loop
;
loop4 ldx #0
loop5 lda strg3,x
sta $6b7,x
lda #1
sta $dab7,x
inx
cpx #10
bne loop5
jsr prtmsg
jmp begin
;
prtmsg ldx #0
prtm lda strg2,x
sta $617,x
lda #1
sta $da17,x
inx
cpx #10
bne prtm
;
wait lda $dc00
cmp #111
bne wait
ldx #0
wait1 lda #32
sta $617,x
lda #15
sta $da17,x
inx
cpx #10
bne wait1
lda #0
sta $c6
rts
;
delay inc stat1
lda stat1
bne delay
inc stat1+1
lda stat1+1
dlay cmp #18
bne delay
lda #0
sta stat1+1
rts
;
level lda lev
cmp #16
bne level1
jsr kick
jmp level2
level1 lda chng2+1
sta chng1+1
lda chng4+1
sta chng3+1
lda chng6+1
sta chng5+1
clc
lda chng2+1
adc #16
sta chng2+1
clc
lda chng4+1
adc #16
sta chng4+1
clc
lda chng6+1
adc #16
sta chng6+1
level2 jsr clrmap
jsr plytun
jsr init
jsr inclev
rts
;
youwin jsr chime
jsr brate
jsr bonus
lda #2
sta pos1y
jsr scroll
inc $d000
inc $d001
inc $d001
ldx #0
youw1 lda strg5,x
sta $4af,x
lda #3
sta $d8af,x
inx
cpx #10
bne youw1
ldx #0
yw lda strg6,x
sta $726,x
inx
cpx #28
bne yw
lda #23
sta plymus+1
lda #22
sta mus2+1
lda #0
sta wcount
youw2 jsr plywin
lda $dc00
cmp #111
bne youw3
lda #65
sta plymus+1
sta mus2+1
jmp begin
youw3 ldy wcount
lda winspr,y
sta $7f8
inc wcount
lda wcount
cmp #8
bne youw2
lda #0
sta wcount
jmp youw2
;
timer lda $dc09
and #15
hold cmp #0
bne clock1
rts
clock1 sta hold+1
dec $7fa
lda $7fa
cmp #228
beq clock2
rts
clock2 lda #238
sta $7fa
dec $7f9
lda $7f9
cmp #228
beq clock3
rts
clock3 lda #229
sta $7f9
sta $7fa
inc over
rts
;
inclev lda $7ff
cmp #238
beq incl1
inc $7ff
incl1 inc $7fe
lda $7fe
cmp #239
beq incl2
rts
incl2 lda #229
sta $7fe
inc $7fd
rts
;
reset lda #0
sta lev
sta chng1+1
sta chng3+1
sta chng5+1
lda #16
sta chng2+1
lda #16
sta chng4+1
lda #16
sta chng6+1
ldy #229
sty $7fd
sty $7ff
iny
sty $7fe
ldy #79
sty lv1+2
iny
iny
sty lv2+2
iny
iny
sty lv3+2
iny
iny
sty lv4+2
iny
iny
sty lv5+2
iny
iny
sty lv6+2
rts
;
kick lda #0
sta chng1+1
sta chng3+1
sta chng5+1
lda #16
sta chng2+1
sta chng4+1
sta chng6+1
inc lv1+2
inc lv2+2
inc lv3+2
inc lv4+2
inc lv5+2
inc lv6+2
rts
;
plytun ldy #0
play jsr plymus
inc mcount
lda mcount
cmp #16
bne play
lda #0
sta mcount
lda #64
sta $d404
sta $d40b
rts
;
plywin jsr plymus
inc mcount
lda mcount
cmp #16
bne plyext
lda #0
sta mcount
plyext rts
;
plymus lda #65
sta $d404
sta $d40b
ldx mcount
lda note1,x
tax
lda notel,x
sta $d400
lda noteh,x
sta $d401
ldx mcount
lda note2,x
tax
lda notel,x
sta $d407
lda noteh,x
sta $d408
jsr delay
jsr delay
mus2 lda #65
sta $d404
sta $d40b
rts
;
; scroll
;
scroll lda pos1x
sta $fb
lda #96
sta $fc
ldx pos1y
cpx #0
beq scrll2
scrll1 lda $fb
clc
adc #128
sta $fb
lda $fc
adc #0
sta $fc
dex
bne scrll1
scrll2 lda #127
sta $2
lda #4
sta $3
ldx #14
scrll3 ldy #25
scrll4 lda ($fb),y
sta ($2),y
dey
bpl scrll4
clc
lda $2
adc #40
sta $2
lda $3
adc #0
sta $3
clc
lda $fb
adc #128
sta $fb
lda $fc
adc #0
sta $fc
dex
bpl scrll3
rts
;
; read joystick
;
bye rts
;
joystk lda $dc00
cmp #127
beq bye
cmp #123 ;lt and #4
bne joy1
ldx #0
ck1 lda pos1y
cmp cklr,x
beq ok1
inx
cpx #14
bne ck1
rts
ok1 lda pos1x
cmp lmin,x
beq bye
dec pos1x
jsr lspr
rts
joy1 cmp #119 ;rt and #8
bne joy2
ldx #0
ck2 lda pos1y
cmp cklr,x
beq ok4
inx
cpx #14
bne ck2
rts
ok4 lda pos1x
cmp rmax,x
beq bye
inc pos1x
jsr rspr
joy2 rts
;
lspr lda $7f8
cmp #226
bne lspr1
lda #227
sta $7f8
jmp lspr2
lspr1 lda #226
sta $7f8
lspr2 dec curpos+1
rts
;
rspr lda $7f8
cmp #224
bne rspr1
lda #225
sta $7f8
jmp rspr2
rspr1 lda #224
sta $7f8
rspr2 inc curpos+1
rts
;
cycle ldy ccount
ldx #0
cyc1 lda shap1,y
sta $316a,x
iny
inx
cpx #4
bne cyc1
sty ccount
cpy #16
bne cycout
ldy #0
sty ccount
cycout rts
;
check lda curpos+1
sta look+1
lda curpos+2
sta look+2
;
look lda $6000
sta hit
lda look+2
sta look1+2
sec
lda look+1
sbc #128
sta look+1
sta look1+1
bcc check2
jmp look1
check2 dec look+2
dec look1+2
check3 dec look1+2
look1 lda $6000
sta hit+1
cmp #66
bne check4
jsr goup
rts
check4 lda hit
cmp #74
bne check5
jsr godn
rts
check5 lda hit
cmp #45
bne check6
lda #21
sta $d40b
lda #255
sta $d408
lda curpos+1
sta got+1
lda curpos+2
sta got+2
lda #37
got sta $6000
jsr score
ldy #255
got1 dey
bne got1
lda #20
sta $d40b
jsr jrate
check6 rts
;
goup lda #0
sta count1
lda #129
sta $d412
lda #3
sta $d40f
lda #239
sta $7f8
lda #1
sta $d01b
goup1 jsr delay
dec pos1y
jsr scroll
jsr sound1
inc count1
lda count1
cmp #6
bne goup1
lda #239