home *** CD-ROM | disk | FTP | other *** search
/ Loadstar 73 / 073.d81 / pipes.buddy < prev    next >
Encoding:
Text File  |  1990-01-01  |  22.4 KB  |  1,401 lines

  1. ;
  2. ; source code for pipes peak
  3. ; by bob blackmer
  4. ;
  5. *=$4000
  6. ;
  7.        jsr chars
  8.        lda #0
  9.        sta $dc0b
  10.        sta $dc0a
  11.        sta $dc09
  12.        sta $dc08
  13. begin  jsr reset
  14.        jsr init
  15.        jsr draw
  16.        jsr plytun
  17.        jsr prtmsg
  18. ;
  19. loop   jsr check
  20.        jsr joystk
  21.        jsr scroll
  22.        jsr cycle
  23.        jsr delay
  24.        jsr timer
  25.        jsr $ffe1
  26.        bne loop1
  27.        jmp kil
  28. loop1  lda pos1y
  29.        cmp #6
  30.        bne qloop
  31.        lda #1
  32.        sta $d01b
  33.        inc lev
  34.        lda lev
  35.        cmp #32
  36.        bne here
  37.        jmp youwin
  38. here   jsr chime
  39.        jsr brate
  40.        jsr bonus
  41.        jsr level
  42.        jsr scroll
  43.        lda #0
  44.        sta $d01b
  45.        jsr prtmsg
  46.        jmp loop
  47. qloop  jsr $ffe4
  48.        cmp #136
  49.        bne loop2
  50.        rts
  51. loop2  lda #0
  52.        sta $c6
  53.        lda over
  54.        beq loop
  55. kil    lda #129
  56.        sta $d404
  57.        lda #224
  58.        sta $7f8
  59.        ldy #30
  60.        ldx #255
  61.        sty $d400
  62. loop3  jsr delay
  63.        inx
  64.        dey
  65.        sty $d401
  66.        lda #0
  67.        sta $3800,x
  68.        sta $381a,x
  69.        cpy #0
  70.        bne loop3
  71.        lda #128
  72.        sta $d404
  73.        lda $7ff
  74.        cmp #229
  75.        beq loop4
  76.        jsr clrmap
  77.        jsr init
  78.        jsr scroll
  79.        dec $7ff
  80.        lda #0
  81.        sta over
  82.        sta skor
  83.        jsr prtmsg
  84.        jmp loop
  85. ;
  86. loop4  ldx #0
  87. loop5  lda strg3,x
  88.        sta $6b7,x
  89.        lda #1
  90.        sta $dab7,x
  91.        inx
  92.        cpx #10
  93.        bne loop5
  94.        jsr prtmsg
  95.        jmp begin
  96. ;
  97. prtmsg ldx #0
  98. prtm   lda strg2,x
  99.        sta $617,x
  100.        lda #1
  101.        sta $da17,x
  102.        inx
  103.        cpx #10
  104.        bne prtm
  105. ;
  106. wait   lda $dc00
  107.        cmp #111
  108.        bne wait
  109.        ldx #0
  110. wait1  lda #32
  111.        sta $617,x
  112.        lda #15
  113.        sta $da17,x
  114.        inx
  115.        cpx #10
  116.        bne wait1
  117.        lda #0
  118.        sta $c6
  119.        rts
  120. ;
  121. delay  inc stat1
  122.        lda stat1
  123.        bne delay
  124.        inc stat1+1
  125.        lda stat1+1
  126. dlay   cmp #18
  127.        bne delay
  128.        lda #0
  129.        sta stat1+1
  130.        rts
  131. ;
  132. level  lda lev
  133.        cmp #16
  134.        bne level1
  135.        jsr kick
  136.        jmp level2
  137. level1 lda chng2+1
  138.        sta chng1+1
  139.        lda chng4+1
  140.        sta chng3+1
  141.        lda chng6+1
  142.        sta chng5+1
  143.        clc
  144.        lda chng2+1
  145.        adc #16
  146.        sta chng2+1
  147.        clc
  148.        lda chng4+1
  149.        adc #16
  150.        sta chng4+1
  151.        clc
  152.        lda chng6+1
  153.        adc #16
  154.        sta chng6+1
  155. level2 jsr clrmap
  156.        jsr plytun
  157.        jsr init
  158.        jsr inclev
  159.        rts
  160. ;
  161. youwin jsr chime
  162.        jsr brate
  163.        jsr bonus
  164.        lda #2
  165.        sta pos1y
  166.        jsr scroll
  167.        inc $d000
  168.        inc $d001
  169.        inc $d001
  170.        ldx #0
  171. youw1  lda strg5,x
  172.        sta $4af,x
  173.        lda #3
  174.        sta $d8af,x
  175.        inx
  176.        cpx #10
  177.        bne youw1
  178.        ldx #0
  179. yw     lda strg6,x
  180.        sta $726,x
  181.        inx
  182.        cpx #28
  183.        bne yw
  184.        lda #23
  185.        sta plymus+1
  186.        lda #22
  187.        sta mus2+1
  188.        lda #0
  189.        sta wcount
  190. youw2  jsr plywin
  191.        lda $dc00
  192.        cmp #111
  193.        bne youw3
  194.        lda #65
  195.        sta plymus+1
  196.        sta mus2+1
  197.        jmp begin
  198. youw3  ldy wcount
  199.        lda winspr,y
  200.        sta $7f8
  201.        inc wcount
  202.        lda wcount
  203.        cmp #8
  204.        bne youw2
  205.        lda #0
  206.        sta wcount
  207.        jmp youw2
  208. ;
  209. timer  lda $dc09
  210.        and #15
  211. hold   cmp #0
  212.        bne clock1
  213.        rts
  214. clock1 sta hold+1
  215.        dec $7fa
  216.        lda $7fa
  217.        cmp #228
  218.        beq clock2
  219.        rts
  220. clock2 lda #238
  221.        sta $7fa
  222.        dec $7f9
  223.        lda $7f9
  224.        cmp #228
  225.        beq clock3
  226.        rts
  227. clock3 lda #229
  228.        sta $7f9
  229.        sta $7fa
  230.        inc over
  231.        rts
  232. ;
  233. inclev lda $7ff
  234.        cmp #238
  235.        beq incl1
  236.        inc $7ff
  237. incl1  inc $7fe
  238.        lda $7fe
  239.        cmp #239
  240.        beq incl2
  241.        rts
  242. incl2  lda #229
  243.        sta $7fe
  244.        inc $7fd
  245.        rts
  246. ;
  247. reset  lda #0
  248.        sta lev
  249.        sta chng1+1
  250.        sta chng3+1
  251.        sta chng5+1
  252.        lda #16
  253.        sta chng2+1
  254.        lda #16
  255.        sta chng4+1
  256.        lda #16
  257.        sta chng6+1
  258.        ldy #229
  259.        sty $7fd
  260.        sty $7ff
  261.        iny
  262.        sty $7fe
  263.        ldy #79
  264.        sty lv1+2
  265.        iny
  266.        iny
  267.        sty lv2+2
  268.        iny
  269.        iny
  270.        sty lv3+2
  271.        iny
  272.        iny
  273.        sty lv4+2
  274.        iny
  275.        iny
  276.        sty lv5+2
  277.        iny
  278.        iny
  279.        sty lv6+2
  280.        rts
  281. ;
  282. kick   lda #0
  283.        sta chng1+1
  284.        sta chng3+1
  285.        sta chng5+1
  286.        lda #16
  287.        sta chng2+1
  288.        sta chng4+1
  289.        sta chng6+1
  290.        inc lv1+2
  291.        inc lv2+2
  292.        inc lv3+2
  293.        inc lv4+2
  294.        inc lv5+2
  295.        inc lv6+2
  296.        rts
  297. ;
  298. plytun ldy #0
  299. play   jsr plymus
  300.        inc mcount
  301.        lda mcount
  302.        cmp #16
  303.        bne play
  304.        lda #0
  305.        sta mcount
  306.        lda #64
  307.        sta $d404
  308.        sta $d40b
  309.        rts
  310. ;
  311. plywin jsr plymus
  312.        inc mcount
  313.        lda mcount
  314.        cmp #16
  315.        bne plyext
  316.        lda #0
  317.        sta mcount
  318. plyext rts
  319. ;
  320. plymus lda #65
  321.        sta $d404
  322.        sta $d40b
  323.        ldx mcount
  324.        lda note1,x
  325.        tax
  326.        lda notel,x
  327.        sta $d400
  328.        lda noteh,x
  329.        sta $d401
  330.        ldx mcount
  331.        lda note2,x
  332.        tax
  333.        lda notel,x
  334.        sta $d407
  335.        lda noteh,x
  336.        sta $d408
  337.        jsr delay
  338.        jsr delay
  339. mus2   lda #65
  340.        sta $d404
  341.        sta $d40b
  342.        rts
  343. ;
  344. ; scroll
  345. ;
  346. scroll lda pos1x
  347.        sta $fb
  348.        lda #96
  349.        sta $fc
  350.        ldx pos1y
  351.        cpx #0
  352.        beq scrll2
  353. scrll1 lda $fb
  354.        clc
  355.        adc #128
  356.        sta $fb
  357.        lda $fc
  358.        adc #0
  359.        sta $fc
  360.        dex
  361.        bne scrll1
  362. scrll2 lda #127
  363.        sta $2
  364.        lda #4
  365.        sta $3
  366.        ldx #14
  367. scrll3 ldy #25
  368. scrll4 lda ($fb),y
  369.        sta ($2),y
  370.        dey
  371.        bpl scrll4
  372.        clc
  373.        lda $2
  374.        adc #40
  375.        sta $2
  376.        lda $3
  377.        adc #0
  378.        sta $3
  379.        clc
  380.        lda $fb
  381.        adc #128
  382.        sta $fb
  383.        lda $fc
  384.        adc #0
  385.        sta $fc
  386.        dex
  387.        bpl scrll3
  388.        rts
  389. ;
  390. ; read joystick
  391. ;
  392. bye    rts
  393. ;
  394. joystk lda $dc00
  395.        cmp #127
  396.        beq bye
  397.        cmp #123 ;lt and #4
  398.        bne joy1
  399.        ldx #0
  400. ck1    lda pos1y
  401.        cmp cklr,x
  402.        beq ok1
  403.        inx
  404.        cpx #14
  405.        bne ck1
  406.        rts
  407. ok1    lda pos1x
  408.        cmp lmin,x
  409.        beq bye
  410.        dec pos1x
  411.        jsr lspr
  412.        rts
  413. joy1   cmp #119 ;rt and #8
  414.        bne joy2
  415.        ldx #0
  416. ck2    lda pos1y
  417.        cmp cklr,x
  418.        beq ok4
  419.        inx
  420.        cpx #14
  421.        bne ck2
  422.        rts
  423. ok4    lda pos1x
  424.        cmp rmax,x
  425.        beq bye
  426.        inc pos1x
  427.        jsr rspr
  428. joy2   rts
  429. ;
  430. lspr   lda $7f8
  431.        cmp #226
  432.        bne lspr1
  433.        lda #227
  434.        sta $7f8
  435.        jmp lspr2
  436. lspr1  lda #226
  437.        sta $7f8
  438. lspr2  dec curpos+1
  439.        rts
  440. ;
  441. rspr   lda $7f8
  442.        cmp #224
  443.        bne rspr1
  444.        lda #225
  445.        sta $7f8
  446.        jmp rspr2
  447. rspr1  lda #224
  448.        sta $7f8
  449. rspr2  inc curpos+1
  450.        rts
  451. ;
  452. cycle  ldy ccount
  453.        ldx #0
  454. cyc1   lda shap1,y
  455.        sta $316a,x
  456.        iny
  457.        inx
  458.        cpx #4
  459.        bne cyc1
  460.        sty ccount
  461.        cpy #16
  462.        bne cycout
  463.        ldy #0
  464.        sty ccount
  465. cycout rts
  466. ;
  467. check  lda curpos+1
  468.        sta look+1
  469.        lda curpos+2
  470.        sta look+2
  471. ;
  472. look   lda $6000
  473.        sta hit
  474.        lda look+2
  475.        sta look1+2
  476.        sec
  477.        lda look+1
  478.        sbc #128
  479.        sta look+1
  480.        sta look1+1
  481.        bcc check2
  482.        jmp look1
  483. check2 dec look+2
  484.        dec look1+2
  485. check3 dec look1+2
  486. look1  lda $6000
  487.        sta hit+1
  488.        cmp #66
  489.        bne check4
  490.        jsr goup
  491.        rts
  492. check4 lda hit
  493.        cmp #74
  494.        bne check5
  495.        jsr godn
  496.        rts
  497. check5 lda hit
  498.        cmp #45
  499.        bne check6
  500.        lda #21
  501.        sta $d40b
  502.        lda #255
  503.        sta $d408
  504.        lda curpos+1
  505.        sta got+1
  506.        lda curpos+2
  507.        sta got+2
  508.        lda #37
  509. got    sta $6000
  510.        jsr score
  511.        ldy #255
  512. got1   dey
  513.        bne got1
  514.        lda #20
  515.        sta $d40b
  516.        jsr jrate
  517. check6 rts
  518. ;
  519. goup   lda #0
  520.        sta count1
  521.        lda #129
  522.        sta $d412
  523.        lda #3
  524.        sta $d40f
  525.        lda #239
  526.        sta $7f8
  527.        lda #1
  528.        sta $d01b
  529. goup1  jsr delay
  530.        dec pos1y
  531.        jsr scroll
  532.        jsr sound1
  533.        inc count1
  534.        lda count1
  535.        cmp #6
  536.        bne goup1
  537.        lda #239
  538.        sta $7f8
  539.        lda #0
  540.        sta $d01b
  541.        dec curpos+2
  542.        dec curpos+2
  543.        dec curpos+2
  544.        lda #128
  545.        sta $d412
  546.        rts
  547. ;
  548. godn   lda #0
  549.        sta count1
  550.        lda #129
  551.        sta $d412
  552.        lda #2
  553.        sta $d40f
  554.        lda #239
  555.        sta $7f8
  556.        lda #1
  557.        sta $d01b
  558. godn1  jsr delay
  559.        inc pos1y
  560.        jsr scroll
  561.        jsr sound1
  562.        inc count1
  563.        lda count1
  564.        cmp #6
  565.        bne godn1
  566.        lda #239
  567.        sta $7f8
  568.        lda #0
  569.        sta $d01b
  570.        inc curpos+2
  571.        inc curpos+2
  572.        inc curpos+2
  573.        lda #128
  574.        sta $d412
  575.        rts
  576. ;
  577. sound1 ldy #200
  578. soun1  sty $d40e
  579.        dey
  580.        bne soun1
  581.        inc $7f8
  582.        lda $7f8
  583.        cmp #242
  584.        bne soun2
  585.        lda #240
  586.        sta $7f8
  587. soun2  rts
  588. ;
  589. chime  lda #14
  590.        sta $d401
  591.        lda #37
  592.        sta $d40f
  593.        lda #9
  594.        sta $d405
  595.        lda #3
  596.        sta $d406
  597.        lda #21
  598.        sta $d404
  599.        ldx #11
  600. chime1 jsr delay
  601.        dex
  602.        bne chime1
  603.        lda #20
  604.        sta $d404
  605.        ldx #6
  606. chime2 jsr delay
  607.        dex
  608.        bne chime2
  609.        lda #0
  610.        sta $d405
  611.        lda #248
  612.        sta $d406
  613.        lda #3
  614.        sta $d40f
  615.        rts
  616. ;
  617. score  inc skor
  618.        lda skor
  619.        cmp #16
  620.        bne scor1
  621.        jsr puttub
  622. scor1  inc $7fc
  623.        lda $7fc
  624.        cmp #239
  625.        beq score1
  626.        rts
  627. score1 lda #229
  628.        sta $7fc
  629.        inc $7fb
  630.        rts
  631. ;
  632. jrate  ldx #10
  633. jrate1 jsr rate
  634.        dex
  635.        bne jrate1
  636.        rts
  637. ;
  638. brate  ldx #100
  639. brate1 jsr rate
  640.        dex
  641.        bne brate1
  642.        rts
  643. ;
  644. bonus  lda over
  645.        bne bonext
  646. bonus1 jsr clock1+3
  647.        lda over
  648.        bne bonext
  649.        jsr rate
  650.        jsr delay
  651.        jmp bonus1
  652. bonext lda #0
  653.        sta over
  654.        rts
  655. ;
  656. rate   inc $7e6
  657.        lda $7e6
  658.        cmp #186
  659.        beq rate1
  660.        rts
  661. rate1  lda #176
  662.        sta $7e6
  663.        inc $7e5
  664.        lda $7e5
  665.        cmp #186
  666.        beq rate2
  667.        rts
  668. rate2  lda #176
  669.        sta $7e5
  670.        inc $7e4
  671.        lda $7e4
  672.        cmp #186
  673.        beq rate3
  674.        rts
  675. rate3  lda #176
  676.        sta $7e4
  677.        inc $7e3
  678.        lda $7e3
  679.        cmp #186
  680.        beq rate4
  681.        rts
  682. rate4  lda #176
  683.        sta $7e3
  684.        inc $7e2
  685. rate5  rts
  686. ;
  687. puttub ldy #72
  688.        sty $6a46
  689.        iny
  690.        sty $6a47
  691.        ldy #64
  692.        sty $6b46
  693.        iny
  694.        sty $6b47
  695.        ldy #66
  696.        sty $6bc6
  697.        iny
  698.        sty $6bc7
  699.        rts
  700. ;
  701. ; initialize
  702. ;
  703. init   ldx #0
  704.        txa
  705. init1  sta $3900,x
  706.        sta $3a00,x
  707.        sta $3b00,x
  708.        sta $3c00,x
  709.        inx
  710.        cpx #0
  711.        bne init1
  712.        ldx #0
  713.        ldy #0
  714. init2  lda spr1,x
  715.        sta $3800,x
  716.        lda spr2,x
  717.        sta $3840,x
  718.        lda spr3,x
  719.        sta $3880,x
  720.        lda spr4,x
  721.        sta $38c0,x
  722.        lda spr5,x
  723.        sta $3bc0,x
  724.        inx
  725.        cpx #64
  726.        bne init2
  727.        ldx #0
  728. init3  lda spr6,x
  729.        sta $3c00,x
  730.        sta $3c40,x
  731.        inx
  732.        cpx #40
  733.        bne init3
  734.        ldx #0
  735. init8  lda spr7,x
  736.        sta $3c28,x
  737.        lda spr8,x
  738.        sta $3c68,x
  739.        inx
  740.        cpx #24
  741.        bne init8
  742.        lda #0
  743.        sta count1
  744. ag     ldy #0
  745.        ldx #0
  746. init4  lda $3180,x
  747. tran   sta $3940,y
  748.        iny
  749.        iny
  750.        iny
  751.        inx
  752.        cpx #8
  753.        bne init4
  754.        clc
  755.        lda tran+1
  756.        adc #64
  757.        sta tran+1
  758.        bcs init5
  759.        jmp init6
  760. init5  inc tran+2
  761. init6  clc
  762.        lda init4+1
  763.        adc #8
  764.        sta init4+1
  765.        inc count1
  766.        lda count1
  767.        cmp #10
  768.        bne ag
  769.        lda #49
  770.        sta init4+2
  771.        lda #128
  772.        sta init4+1
  773.        lda #57
  774.        sta tran+2
  775.        lda #64
  776.        sta tran+1
  777.        lda #124
  778.        sta curpos+1
  779.        lda #145
  780.        sta curpos+2
  781.        ldx #0
  782.        lda #0
  783. init7  sta skor,x
  784.        inx
  785.        cpx #10
  786.        bne init7
  787. ;
  788.        ldx #0
  789. ivid   lda vid,x
  790.        sta $d000,x
  791.        inx
  792.        cpx #47
  793.        bne ivid
  794.        lda #100
  795. setsnd ldx #0
  796. snd1   lda snd,x
  797.        sta $d400,x
  798.        inx
  799.        cpx #25
  800.        bne snd1
  801.        lda #112
  802.        sta pos1x
  803.        lda #90
  804.        sta pos1y
  805.        lda #226
  806.        sta $7f8
  807.        lda #229
  808.        sta $7fa
  809.        sta $7fb
  810.        sta $7fc
  811.        lda #238
  812.        sta $7f9
  813.        rts
  814. ;
  815. snd .byt 0,0,0,8,0,0,248,0
  816. .byt 0,0,8,0,10,9,255,64
  817. .byt 0,0,128,105,105,0,0,0,15
  818. ;
  819. vid .byt 171,123,76,222,92,222,140
  820. .byt 222,156,222,204,222,220,222
  821. .byt 12,222,128,27,0,0,0,255,216
  822. .byt 254,29,0,0,0,1,254,0,0,12,0
  823. .byt 9,14,8,4,7,10,1,1,1,1,1,1,1
  824. ;
  825. ; custom characters
  826. ;
  827. chars  lda $dc0e
  828.        and #254
  829.        sta $dc0e
  830.        lda $1
  831.        and #251
  832.        sta $1
  833. uh     ldx #0
  834. char1  lda $d000,x
  835. char2  sta $3000,x
  836.        inx
  837.        cpx #0
  838.        bne char1
  839.        inc char1+2
  840.        inc char2+2
  841.        lda char2+2
  842.        cmp #55
  843.        bne uh
  844.        lda #48
  845.        sta char2+2
  846.        lda #208
  847.        sta char1+2
  848.        lda $1
  849.        ora #4
  850.        sta $1
  851.        lda $dc0e
  852.        ora #1
  853.        sta $dc0e
  854.        ldx #0
  855. char3  lda chdat,x
  856.        sta $3118,x
  857.        inx
  858.        cpx #72
  859.        bne char3
  860.        ldx #0
  861. char4  lda chdat1,x
  862.        sta $3200,x
  863.        inx
  864.        cpx #224
  865.        bne char4
  866.        ldx #0
  867. char5  lda chdat2,x
  868.        sta $3168,x
  869.        inx
  870.        cpx #8
  871.        bne char5
  872.        rts
  873. ;
  874. draw   lda #154
  875.        jsr $ffd2
  876.        lda #147
  877.        jsr $ffd2
  878.        ldx #0
  879. draw1  lda #160
  880.        sta $400,x
  881.        sta $500,x
  882.        sta $600,x
  883.        sta $6e8,x
  884.        inx
  885.        cpx #0
  886.        bne draw1
  887.        lda #155
  888.        jsr $ffd2
  889.        ldx #3
  890. draw2  ldy #6
  891. draw3  clc
  892.        jsr $fff0
  893.        lda #32
  894.        jsr $ffd2
  895.        iny
  896.        cpy #33
  897.        bne draw3
  898.        inx
  899.        cpx #18
  900.        bne draw2
  901.        lda #159
  902.        jsr $ffd2
  903.        lda #18
  904.        jsr $ffd2
  905.        ldy #6
  906.        ldx #2
  907. draw4  clc
  908.        jsr $fff0
  909.        lda #32
  910.        jsr $ffd2
  911.        inx
  912.        cpx #19
  913.        bne draw4
  914.        ldy #33
  915.        ldx #2
  916. draw5  clc
  917.        jsr $fff0
  918.        lda #32
  919.        jsr $ffd2
  920.        inx
  921.        cpx #19
  922.        bne draw5
  923.        ldx #0
  924. draw6  lda #3
  925.        sta $d857,x
  926.        sta $dad7,x
  927.        inx
  928.        cpx #26
  929.        bne draw6
  930.        ldx #0
  931. draw7  lda strg1,x
  932.        sta $720,x
  933.        lda strg7,x
  934.        sta $7c0,x
  935.        lda #3
  936.        sta $db20,x
  937.        sta $d800,x
  938.        sta $dbc0,x
  939.        lda #160
  940.        sta $400,x
  941.        inx
  942.        cpx #40
  943.        bne draw7
  944. ;
  945.        ldx #0
  946. draw8  lda strg4,x
  947.        sta $405,x
  948.        lda strg8,x
  949.        sta $414,x
  950.        lda #11
  951.        sta $d805,x
  952.        lda #3
  953.        sta $d814,x
  954.        inx
  955.        cpx #15
  956.        bne draw8
  957. ;
  958.        ldx #0
  959.        lda #1
  960. draw9  sta $dbe2,x
  961.        inx
  962.        cpx #5
  963.        bne draw9
  964. ;
  965. clrmap ldx #0
  966.        lda #32
  967. clr1   sta $6000,x
  968.        inx
  969.        cpx #0
  970.        bne clr1
  971.        inc clr1+2
  972.        lda clr1+2
  973.        cmp #160
  974.        bne clrmap
  975.        lda #96
  976.        sta clr1+2
  977. ;
  978.        lda #0
  979.        sta count1
  980.        lda #196
  981.        sta stor+1
  982.        lda #106
  983.        sta stor+2
  984.        lda #6
  985.        sta valu1+1
  986.        sta valu2+1
  987. map    ldx #0
  988. mp1    lda #35
  989. map1   jsr stor
  990.        inx
  991. valu1  cpx #1
  992.        beq mp2
  993.        lda #36
  994.        jsr stor
  995.        inx
  996. valu2  cpx #1
  997.        bne mp1
  998. mp2    sec
  999.        lda stor+1
  1000.        sbc #4
  1001.        sta stor+1
  1002.        clc
  1003.        lda valu1+1
  1004.        adc #8
  1005.        sta valu1+1
  1006.        sta valu2+1
  1007.        inc stor+2
  1008.        inc stor+2
  1009.        inc stor+2
  1010.        inc count1
  1011.        lda count1
  1012.        cmp #14
  1013.        bne map
  1014. ;
  1015.        lda #0
  1016.        sta count1
  1017.        lda #69
  1018.        sta stor+1
  1019.        lda #106
  1020.        sta stor+2
  1021.        lda #4
  1022.        sta valu3+1
  1023. walk   ldx #0
  1024.        lda #37
  1025. wk1    jsr stor
  1026.        inx
  1027. valu3  cpx #1
  1028.        bne wk1
  1029.        sec
  1030.        lda stor+1
  1031.        sbc #4
  1032.        sta stor+1
  1033.        clc
  1034.        lda valu3+1
  1035.        adc #8
  1036.        sta valu3+1
  1037.        inc stor+2
  1038.        inc stor+2
  1039.        inc stor+2
  1040.        inc count1
  1041.        lda count1
  1042.        cmp #14
  1043.        bne walk
  1044. ;
  1045.        lda #0
  1046.        tax
  1047.        sta count1
  1048.        lda #196
  1049.        sta stor+1
  1050.        lda #105
  1051.        sta stor+2
  1052. crnr1  lda #38
  1053.        jsr stor
  1054.        clc
  1055.        lda stor+1
  1056.        adc #128
  1057.        sta stor+1
  1058.        bcs cr1
  1059.        jmp cr2
  1060. cr1    inc stor+2
  1061. cr2    lda #39
  1062.        jsr stor
  1063.        clc
  1064.        lda stor+1
  1065.        adc #124
  1066.        sta stor+1
  1067.        bcs cr3
  1068.        jmp cr4
  1069. cr3    inc stor+2
  1070. cr4    inc stor+2
  1071.        inc stor+2
  1072.        inc count1
  1073.        lda count1
  1074.        cmp #14
  1075.        bne crnr1
  1076. ;
  1077.        lda #0
  1078.        tax
  1079.        sta count1
  1080.        lda #201
  1081.        sta stor+1
  1082.        lda #105
  1083.        sta stor+2
  1084. crnr2  lda #40
  1085.        jsr stor
  1086.        clc
  1087.        lda stor+1
  1088.        adc #128
  1089.        sta stor+1
  1090.        bcs cr5
  1091.        jmp cr6
  1092. cr5    inc stor+2
  1093. cr6    lda #41
  1094.        jsr stor
  1095.        clc
  1096.        lda stor+1
  1097.        adc #132
  1098.        sta stor+1
  1099.        bcs cr7
  1100.        jmp cr8
  1101. cr7    inc stor+2
  1102. cr8    inc stor+2
  1103.        inc stor+2
  1104.        inc count1
  1105.        lda count1
  1106.        cmp #14
  1107.        bne crnr2
  1108. ;
  1109.        lda #198
  1110.        sta tp2+1
  1111.        lda #101
  1112.        sta tp2+2
  1113.        lda #0
  1114.        sta count2
  1115.        tay
  1116.        tax
  1117. tp1    lda topstr,y
  1118. tp2    sta $6000,x
  1119.        iny
  1120.        inx
  1121.        cpx #2
  1122.        bne tp1
  1123.        ldx #0
  1124.        clc
  1125.        lda tp2+1
  1126.        adc #128
  1127.        sta tp2+1
  1128.        bcs tp3
  1129.        jmp tp4
  1130. tp3    inc tp2+2
  1131. tp4    inc count2
  1132.        lda count2
  1133.        cmp #7
  1134.        bne tp1
  1135. ;
  1136. chng1  lda #0
  1137.        sta count1
  1138. utube  ldx count1
  1139. lv1    lda $4f00,x
  1140.        sta upt+1
  1141. lv2    lda $5100,x
  1142.        sta upt+2
  1143.        lda #0
  1144.        sta count2
  1145.        tay
  1146.        tax
  1147. utub   lda uptube,y
  1148. upt    sta $6000,x
  1149.        iny
  1150.        inx
  1151.        cpx #2
  1152.        bne utub
  1153.        ldx #0
  1154.        clc
  1155.        lda upt+1
  1156.        adc #128
  1157.        sta upt+1
  1158.        bcs upt1
  1159.        jmp upt2
  1160. upt1   inc upt+2
  1161. upt2   inc count2
  1162.        lda count2
  1163.        cmp #4
  1164.        bne utub
  1165.        inc count1
  1166.        lda count1
  1167. chng2  cmp #16
  1168.        bne utube
  1169. ;
  1170. chng3  lda #0
  1171.        sta count1
  1172. dtube  ldx count1
  1173. lv3    lda $5300,x
  1174.        sta dpt+1
  1175. lv4    lda $5500,x
  1176.        sta dpt+2
  1177.        lda #0
  1178.        sta count2
  1179.        tay
  1180.        tax
  1181. dtub   lda dntube,y
  1182. dpt    sta $6000,x
  1183.        iny
  1184.        inx
  1185.        cpx #2
  1186.        bne dtub
  1187.        ldx #0
  1188.        clc
  1189.        lda dpt+1
  1190.        adc #128
  1191.        sta dpt+1
  1192.        bcs dpt1
  1193.        jmp dpt2
  1194. dpt1   inc dpt+2
  1195. dpt2   inc count2
  1196.        lda count2
  1197.        cmp #4
  1198.        bne dtub
  1199.        inc count1
  1200.        lda count1
  1201. chng4  cmp #16
  1202.        bne dtube
  1203. ;
  1204. chng5  lda #0
  1205.        sta count1
  1206. putc   ldx count1
  1207. lv5    lda $5700,x
  1208.        sta putc1+1
  1209. lv6    lda $5900,x
  1210.        sta putc1+2
  1211.        lda #45
  1212. putc1  sta $6000
  1213.        inc count1
  1214.        lda count1
  1215. chng6  cmp #16
  1216.        bne putc
  1217.        rts
  1218. ;
  1219. stor   sta $6000,x
  1220.        rts
  1221. ;
  1222. chdat
  1223. .byt 117,117,255,85,85,255,117,117
  1224. .byt 85,85,255,117,117,255,85,85
  1225. .byt 187,238,187,238,187,238,187,238
  1226. .byt 0,0,1,1,5,5,21,21
  1227. .byt 85,85,87,86,91,94,123,110
  1228. .byt 0,0,64,64,80,80,84,84
  1229. .byt 85,85,149,213,181,229,185,237
  1230. .byt 163,139,163,139,163,139,163,136
  1231. .byt 40,136,40,136,40,136,40,136
  1232. chdat1
  1233. .byt 162,136,162,136,163,143,191,139
  1234. .byt 40,136,40,136,40,200,248,136
  1235. .byt 163,139,163,139,163,139,35,8
  1236. .byt 40,136,40,136,40,136,32,128
  1237. .byt 81,71,83,71,83,71,83,71
  1238. .byt 20,68,20,68,20,68,20,68
  1239. .byt 83,71,127,79,83,68,17,4
  1240. .byt 20,68,244,196,20,68,16,64
  1241. .byt 187,192,0,0,0,0,128,138
  1242. .byt 187,14,3,2,3,2,11,238
  1243. .byt 187,192,0,0,0,0,128,138
  1244. .byt 187,14,3,2,3,2,11,238
  1245. .byt 85,93,12,15,63,63,63,63
  1246. .byt 85,117,48,240,252,252,252,252
  1247. .byt 255,255,255,255,255,10,20,0
  1248. .byt 255,255,255,255,255,0,0,0
  1249. ;
  1250. .byt 85,106,111,85,106,111,111,111
  1251. .byt 109,109,109,109,173,253,253,253
  1252. .byt 109,109,109,109,109,109,109,109
  1253. .byt 85,169,189,85,170,191,191,191
  1254. .byt 181,182,182,181,182,246,246,245
  1255. .byt 86,170,255,91,171,255,255,86
  1256. .byt 213,218,219,213,234,255,255,213
  1257. .byt 91,171,255,91,155,219,219,91
  1258. .byt 255,255,255,247,215,119,95,127
  1259. .byt 247,215,95,127,119,95,127,87
  1260. .byt 95,119,125,125,93,117,125,125
  1261. .byt 255,255,255,223,223,221,215,221
  1262. chdat2
  1263. .byt 187,238,143,23,180,34,187,238
  1264. ;
  1265. shap1
  1266. .byt 143,23,180,34
  1267. .byt 136,54,151,47
  1268. .byt 136,30,212,242
  1269. .byt 248,214,156,34
  1270. ;
  1271. spr1
  1272. .byt 0,0,0,0,254,0,3,248,0,3,170
  1273. .byt 0,3,168,0,0,160,0,0,160,0,0
  1274. .byt 80,0,1,80,0,1,80,0,1,80,0,1
  1275. .byt 80,0,1,208,0,1,80,0,0,80,0,0
  1276. .byt 20,0,0,84,0,1,80,0,1,16,0,3
  1277. .byt 208,0,0,60,0,0
  1278. spr2
  1279. .byt 0,0,0,0,0,0,0,254,0,3,248,0
  1280. .byt 3,170,0,3,168,0,0,160,0,0
  1281. .byt 160,0,0,80,0,1,80,0,1,80,0,1
  1282. .byt 84,0,13,87,0,1,80,0,1,80,0,1
  1283. .byt 80,0,5,20,0,20,5,0,80,1,0,64
  1284. .byt 1,0,240,3,192,0
  1285. spr3
  1286. .byt 0,0,0,2,252,0,0,191,0,2,171
  1287. .byt 0,0,171,0,0,40,0,0,40,0,0,20
  1288. .byt 0,0,21,0,0,21,0,0,21,0,0,21
  1289. .byt 0,0,29,0,0,21,0,0,20,0,0,80
  1290. .byt 0,0,84,0,0,21,0,0,17,0,0,31
  1291. .byt 0,0,240,0,0
  1292. spr4
  1293. .byt 0,0,0,0,0,0,2,252,0,0,191,0
  1294. .byt 2,171,0,0,171,0,0,40,0,0,40
  1295. .byt 0,0,20,0,0,21,0,0,21,0,0,85
  1296. .byt 0,3,85,192,0,21,0,0,21,0,0
  1297. .byt 21,0,0,81,64,1,64,80,1,0,20
  1298. .byt 1,0,4,15,0,60,0
  1299. spr5
  1300. .byt 0,0,0,0,60,0,0,191,0,0,175,0
  1301. .byt 0,175,0,0,40,0,0,85,0,1,85
  1302. .byt 64,1,85,64,1,85,64,0,213,192
  1303. .byt 0,85,0,0,85,0,0,85,0,0,81,0
  1304. .byt 0,65,0,0,65,0,0,65,0,0,65,0
  1305. .byt 0,195,0,0,0,0,0
  1306. spr6
  1307. .byt 3,0,192,1,60,64,1,255,64,1
  1308. .byt 255,64,1,255,64,1,60,64,1,85
  1309. .byt 64,1,85,64,0,85,0,0,85,0,0
  1310. .byt 85,0,0,85,0,0,85,0,0
  1311. spr7
  1312. .byt 81,0,0,65,0,0,65,0,0,67,0,0
  1313. .byt 64,0,0,64,0,0,192,0,0,0,0,0
  1314. spr8
  1315. .byt 85,0,0,81,0,0,65,0,0,193,0,0
  1316. .byt 1,0,0,1,0,0,3,0,0,0,0,0
  1317. ;
  1318. strg1
  1319. .byt 160,160,160,160,160
  1320. .byt 160,131,140,143,131,139,160
  1321. .byt 160,160,130,133,140,140,147
  1322. .byt 160,160,160,140,133,150,133
  1323. .byt 140,160,160,140,137,150,133
  1324. .byt 147,160,160,160,160,160,160
  1325. strg2
  1326. .byt 144,146,133,147,147,160
  1327. .byt 134,137,146,133
  1328. strg3
  1329. .byt 135,129,141,133,160,160
  1330. .byt 143,150,133,146
  1331. strg4
  1332. .byt 80,81,82,83,84,85,86,87
  1333. .byt 160,88,89,90,91,160,160
  1334. strg5
  1335. .byt 160,129,151,133,147,143
  1336. .byt 141,133,161,160
  1337. strg6
  1338. .byt 160,129,142,160,137,141,144
  1339. .byt 146,133,147,147,137,150,133
  1340. .byt 160,144,133,146,134,143,146
  1341. .byt 141,129,142,131,133,161,160
  1342. strg7
  1343. .byt 148,146,129,144,144
  1344. .byt 133,132,191,173,146,149,142
  1345. .byt 175,147,148,143,144,160,160
  1346. .byt 134,183,173,145,149,137,148
  1347. .byt 160,160,147,131,143,146,133
  1348. .byt 186,176,176,176,176,176,160
  1349. strg8
  1350. .byt 130,153,160,130,143,130,160
  1351. .byt 130,140,129,131,139,141,133
  1352. .byt 146
  1353. ;
  1354. notel
  1355. .byt 0,12,233,97,104,143,48,143
  1356. .byt 24,210,195,209,31,96,30
  1357. noteh
  1358. .byt 0,7,7,8,9,10,11,12,14,15,16
  1359. .byt 18,21,22,25
  1360. ;
  1361. note1
  1362. .byt 5,8,5,8,5,6,5,4,6,5,4,3,2,4,2,1
  1363. note2
  1364. .byt 5,1,1,1,1,4,4,4,4,1,1,1,1,5,5,1
  1365. ;
  1366. cklr .byt 90,84,78,72,66,60,54,48,42,36,30,24,18,12
  1367. ;
  1368. rmax
  1369. .byt 112,108,104,100,96,92,88,84,80,76,72,68,64,60
  1370. ;
  1371. lmin
  1372. .byt 5,9,13,17,21,25,29,33,37,41,45,49,53,57
  1373. ;
  1374. uptube
  1375. .byt 72,73,35,36,64,65,66,67
  1376. dntube
  1377. .byt 74,75,35,36,68,69,70,71
  1378. topstr
  1379. .byt 76,77,78,79,32,32,64,65
  1380. .byt 42,43,64,65,66,67
  1381. winspr
  1382. .byt 224,225,239,226
  1383. .byt 227,239,240,241
  1384. wcount .byt 0
  1385. ;
  1386. lev  .byt 0
  1387. skor .byt 0
  1388. over .byt 0
  1389. hit .byt 0,0
  1390. mcount .byt 0
  1391. ccount .byt 0
  1392. count1 .byt 0
  1393. count2 .byt 0
  1394. stat1 .byt 0,0
  1395. pos1y .byte 0
  1396. pos1x .byte 0
  1397. curpos .byte 0,120,145
  1398. .byt 66,76,65,67,75,77,69,82
  1399. .end
  1400. ;
  1401.