Guest User

Untitled

a guest
Jun 18th, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 15.56 KB | None | 0 0
  1. // Edytor faz
  2. // Gives: $0c00-$0fe8 screen
  3. // Load: Adv. Art Atudio picture
  4.  
  5. // Finished on 1995.VI.18 (not all!)
  6. // (w) 1995 by Digger/Square Team/pd
  7.  
  8. // Ported to Kick Ass on 11/10/2010
  9. // Yes, that's 15 years.
  10.  
  11. .var vadd = $0c00
  12. .var vedd = $0fc0
  13. .var vend = $0fe8
  14. .var spr1 = $0380
  15. .var spr2 = $03c0
  16. .var tabela = $4800
  17. .var saddmap = $0900
  18. .var eaddmap = $0a11
  19. .var xpos = $d0
  20. .var ypos = $d1//d2
  21. .var vchr = $d3//d4
  22. .var spx = $d5//d6
  23. .var spy = $d7
  24. .var mchar = $d8
  25. .var do11 = $d9
  26. .var cpnt = $da
  27. .var autoflg = $db
  28. .var help = $dc
  29. .var c3f = $dd
  30. .var vtab = $de//df
  31. .var vcpy = $e0//e1
  32. .var vopr = $e2//e3
  33. .var speed = $01
  34.  
  35. .var stripeCol = $0c
  36. .var bank = $37
  37.  
  38. :BasicUpstart2(run)
  39.  
  40. .pc = $0c00 "Color fade delays screen"
  41. table: .import c64 "screen_1.dat"
  42.  
  43. .pc = $2000 "Bitmap"
  44. .import c64 "bitmap.dat"
  45.  
  46. .pc = $4800 "Colors"
  47. .import c64 "tabela.col"
  48.  
  49. /*.import source "/Users/tomek/C64/MyStuff/macros.asm"*/
  50.  
  51. .pc = $5b00 "Main"
  52.  
  53. run: lda #$0b
  54. jsr $e536
  55. sei
  56. lda #<irq
  57. ldy #>irq
  58. sta $0314
  59. sty $0315
  60. lda #$7f
  61. sta $dc0d
  62. lda #$01
  63. sta $d01a
  64. lda $3fff
  65. sta c3f
  66. lda #$00
  67. sta $d020
  68. sta $d021
  69. sta cpnt
  70. sta autoflg
  71.  
  72. ldx #$00
  73. clr: lda shape,x
  74. sta spr1,x
  75. lda #0
  76. sta spr2,x
  77. inx
  78. cpx #$40
  79. bne clr
  80.  
  81. lda #bank
  82. sta $d018
  83. lda #$1b
  84. sta $d011
  85. sta do11
  86. lda #$f9
  87. sta $d012
  88. lda #$03
  89. sta $d015
  90. lda #$0f
  91. sta $d027
  92. sta $d028
  93. lda #spr1/64
  94. sta $0ff8
  95. sta $07f8
  96. lda #spr2/64
  97. sta $0ff9
  98. sta $07f9
  99. lda #$20
  100. sta $d002
  101. lda #$ff
  102. sta $d003
  103. lda #$00
  104. sta mchar
  105. jsr cshow
  106.  
  107. lda #$08
  108. jsr $ffd2 //blokada
  109.  
  110. lda #$00
  111. sta spy
  112. sta spx
  113. sta spx+1
  114. jsr supdt
  115.  
  116. lda #<vadd
  117. ldy #>vadd
  118. sta ypos
  119. sty ypos+1
  120. lda #<vadd
  121. sta xpos
  122. jsr actual
  123.  
  124. cli
  125.  
  126. read: jsr $ffe4
  127. beq read
  128.  
  129. cmp #$11
  130. beq sdown
  131. cmp #$91
  132. beq sup
  133. cmp #$1d
  134. beq sright
  135. cmp #$9d
  136. beq sleft
  137. cmp #$0a
  138. beq senter
  139. cmp #$20
  140. beq senter
  141. cmp #$2b
  142. beq splus
  143. cmp #$2d
  144. beq sminus
  145. cmp #$8d
  146. beq stake
  147. cmp #$85
  148. beq sf1
  149. cmp #$86
  150. beq sf3
  151. cmp #$13
  152. beq home
  153. cmp #$03
  154. beq sauto
  155. cmp #$93
  156. beq sfill
  157. cmp #$88 //F7
  158. beq stest
  159. cmp #$69 //i
  160. beq skier
  161.  
  162. ldx #$09
  163. check1: cmp chars,x
  164. beq scwpis
  165. dex
  166. bpl check1
  167. ldx #$05
  168. check2: cmp lits,x
  169. beq slwpis
  170. dex
  171. bpl check2
  172.  
  173. jmp read
  174.  
  175. //-----------------------------------------------------------------------
  176. sleft: jmp left
  177. sright: jmp right
  178. sdown: jmp down
  179. senter: jmp enter
  180. sup: jmp up
  181. sf1: jmp f1
  182. sf3: jmp f3
  183. scwpis: jmp cwpis
  184. slwpis: jmp lwpis
  185. sauto: jmp auto
  186. stest: jmp test
  187. stake: jmp take
  188. skier: jmp kier
  189. sminus: jmp minus
  190. sfill: jmp fill
  191. splus: jmp plus
  192. //--------------------------------------------------------------------------
  193.  
  194. home: lda #<vadd
  195. ldy #>vadd
  196. sta ypos
  197. sty ypos+1
  198. lda #<vadd
  199. sta xpos
  200. lda #$00
  201. sta spy
  202. sta spx
  203. sta spx+1
  204. jsr supdt
  205. jsr actual
  206. jmp read
  207.  
  208.  
  209. plus: inc mchar
  210. jsr cshow
  211. jmp read
  212.  
  213. minus: dec mchar
  214. jsr cshow
  215. jmp read
  216.  
  217. take: ldy xpos
  218. lda (ypos),y
  219. sta mchar
  220. jsr cshow
  221. jmp read
  222.  
  223. fill: ldx #$00
  224. lda mchar
  225. sta vadd,x
  226. sta vadd+$0100,x
  227. sta vadd+$0200,x
  228. sta vadd+$02e8,x
  229. inx
  230. bne fill+2
  231. jsr actual
  232. jmp read
  233.  
  234.  
  235. auto: lda autoflg
  236. eor #$01
  237. sta autoflg
  238. beq not8
  239.  
  240. lda #%00111110
  241. sta spr2+[20*3]
  242. jmp read
  243. not8: lda #$00
  244. sta spr2+[20*3]
  245. jmp read
  246.  
  247. enter: ldy xpos
  248. lda mchar
  249. sta (ypos),y
  250. lda autoflg
  251. beq not7
  252. inc mchar
  253. not7: jsr cshow
  254. jsr actual
  255. jmp read
  256.  
  257. down: inc spy
  258. lda spy
  259. cmp #$19
  260. bne not6
  261. lda #$00
  262. sta spy
  263. lda #<vadd
  264. ldy #>vadd
  265. sta ypos
  266. sty ypos+1
  267. jmp right
  268. not6: jsr supdt
  269. lda ypos
  270. clc
  271. adc #$28
  272. sta ypos
  273. lda ypos+1
  274. adc #$00
  275. sta ypos+1
  276. jsr actual
  277. jmp read
  278.  
  279.  
  280. up: dec spy
  281. lda spy
  282. cmp #$ff
  283. bne not5
  284. lda #$18
  285. sta spy
  286. lda #<vedd
  287. ldy #>vedd
  288. sta ypos
  289. sty ypos+1
  290. jmp left
  291. not5: jsr supdt
  292. lda ypos
  293. sec
  294. sbc #$28
  295. sta ypos
  296. lda ypos+1
  297. sbc #$00
  298. sta ypos+1
  299. jsr actual
  300. jmp read
  301.  
  302.  
  303.  
  304.  
  305. right: inc spx
  306. lda spx
  307. cmp #$1d
  308. bne not3
  309. inc spx+1
  310. not3: jsr supdt
  311. inc xpos
  312. lda xpos
  313. cmp #$28
  314. bne not1
  315. lda #$00
  316. sta xpos
  317. sta spx
  318. sta spx+1
  319. jmp down
  320. not1: jsr actual
  321. jmp read
  322.  
  323.  
  324.  
  325. left: dec spx
  326. lda spx
  327. cmp #$1c
  328. bne not4
  329. dec spx+1
  330. not4: jsr supdt
  331. dec xpos
  332. lda xpos
  333. cmp #$ff
  334. bne not2
  335. lda #$27
  336. sta xpos
  337. sta spx
  338. lda #$01
  339. sta spx+1
  340. jmp up
  341. not2: jsr actual
  342. jmp read
  343.  
  344.  
  345.  
  346.  
  347. f1: jsr vblank
  348. lda #$0b
  349. sta $d011
  350. sta do11
  351. lda #bank
  352. sta $d018
  353. lda #$c8
  354. sta $d016
  355. ldx #$00
  356. fill1: lda #$0b
  357. sta $d800,x
  358. sta $d900,x
  359. sta $da00,x
  360. sta $dae8,x
  361. inx
  362. bne fill1
  363. jsr vblank
  364. lda #$1b
  365. sta $d011
  366. sta do11
  367. jmp read
  368.  
  369.  
  370.  
  371. f3: jsr vblank
  372. lda #$0b
  373. sta do11
  374. sta $d011
  375. lda #$18
  376. sta $d018
  377. sta $d016
  378. ldx #$00
  379. fill2: lda $3f40,x
  380. sta $0400,x
  381. lda $4040,x
  382. sta $0500,x
  383. lda $4140,x
  384. sta $0600,x
  385. lda $4228,x
  386. sta $06e8,x
  387. lda $4338,x
  388. sta $d800,x
  389. lda $4438,x
  390. sta $d900,x
  391. lda $4538,x
  392. sta $da00,x
  393. lda $4620,x
  394. sta $dae8,x
  395. inx
  396. bne fill2
  397. jsr vblank
  398. lda #$3b
  399. sta $d011
  400. sta do11
  401. jmp read
  402.  
  403.  
  404.  
  405. kier: lda #<vadd
  406. sta vopr
  407. lda #>vadd
  408. sta vopr+1
  409.  
  410. ldy #$00
  411. opr: lda (vopr),y
  412. eor #$ff
  413. sta (vopr),y
  414. inc vopr
  415. bne *+4
  416. inc vopr+1
  417.  
  418. lda vopr+1
  419. cmp #>vend
  420. bne opr
  421.  
  422. lda vopr
  423. cmp #<vend
  424. bne opr
  425.  
  426. jmp read
  427.  
  428. //-----------------------------------------------------------------------
  429.  
  430. //--------------------------------------------------------------------------------
  431.  
  432.  
  433.  
  434. test: ldx #$00
  435. lda #>tabela
  436. sta saddmap,x
  437. sta saddmap+$10,x
  438. inx
  439. bne test+2
  440.  
  441. lda #<tabela
  442. sta vtab
  443. lda #>tabela
  444. sta vtab+1
  445.  
  446. lda #<saddmap
  447. sta vcpy
  448. lda #>saddmap
  449. sta vcpy+1
  450.  
  451. start: lda $dc01
  452. cmp #$df
  453. bne part1-2
  454. jmp read
  455.  
  456. ldx #$00
  457. part1: ldy $0c00,x
  458. lda saddmap+$10,y
  459. sta vtab+1
  460. ldy $3f40,x
  461. lda (vtab),y
  462. sta $0400,x
  463. ldy $4338,x
  464. lda (vtab),y
  465. sta $d800,x
  466.  
  467. ldy $0d00,x
  468. lda saddmap+$10,y
  469. sta vtab+1
  470. ldy $4040,x
  471. lda (vtab),y
  472. sta $0500,x
  473. ldy $4438,x
  474. lda (vtab),y
  475. sta $d900,x
  476.  
  477. ldy $0e00,x
  478. lda saddmap+$10,y
  479. sta vtab+1
  480. ldy $4140,x
  481. lda (vtab),y
  482. sta $0600,x
  483. ldy $4538,x
  484. lda (vtab),y
  485. sta $da00,x
  486. inx
  487. bne part1
  488.  
  489. part2: ldy $0f00,x
  490. lda saddmap+$10,y
  491. sta vtab+1
  492. ldy $4240,x
  493. lda (vtab),y
  494. sta $0700,x
  495. ldy $4638,x
  496. lda (vtab),y
  497. sta $db00,x
  498. inx
  499. cpx #$e8
  500. bne part2
  501.  
  502. ldy #$00
  503. rewrt: lda pocztab,y
  504. sta (vcpy),y
  505. iny
  506. cpy #$10
  507. bne rewrt
  508.  
  509. inc vcpy
  510. bne *+4
  511. inc vcpy+1
  512.  
  513. lda vcpy+1
  514. cmp #>eaddmap
  515. bne gostr
  516. lda vcpy
  517. cmp #<eaddmap
  518. beq fine
  519. gostr: jmp start
  520.  
  521. fine: jmp read
  522. //-----------------------------------------------------------------
  523. supdt: lda spy
  524. asl
  525. asl
  526. asl
  527. clc
  528. adc #$32
  529. sta $d001
  530. lda spx
  531. asl
  532. asl
  533. asl
  534. clc
  535. adc #$18
  536. sta $d000
  537. lda spx+1
  538. sta $d010
  539. rts
  540.  
  541. //--------------------------------------------------------------------
  542. actual: ldy xpos
  543. lda (ypos),y
  544. tax
  545. lsr
  546. lsr
  547. lsr
  548. lsr
  549. sta vchr
  550. txa
  551. and #$0f
  552. sta vchr+1
  553.  
  554. lda vchr
  555. asl
  556. asl
  557. asl
  558. tax
  559. ldy #$00
  560. copy1a: lda cyfry,x
  561. lsr
  562. lsr
  563. sta spr2+[9*3],y
  564. inx
  565. iny
  566. iny
  567. iny
  568. cpy #$08*3
  569. bne copy1a
  570.  
  571. lda vchr+1
  572. asl
  573. asl
  574. asl
  575. tax
  576. ldy #$00
  577. copy2a: lda cyfry,x
  578. sta spr2+[9*3]+1,y
  579. inx
  580. iny
  581. iny
  582. iny
  583. cpy #$08*3
  584. bne copy2a
  585.  
  586. lda #$00
  587. sta help
  588. ldy xpos
  589. lda (ypos),y
  590. asl
  591. rol help
  592. asl
  593. rol help
  594. asl
  595. rol help
  596. sta skad1+1
  597. lda help
  598. clc
  599. adc #$d8
  600. sta skad1+2
  601.  
  602. lda #$33
  603. sta $01
  604. ldx #$00
  605. ldy #$00
  606. skad1: lda $ffff,x
  607. sta spr2+[9*3]+2,y
  608. iny
  609. iny
  610. iny
  611. inx
  612. cpx #$08
  613. bne skad1
  614. lda #$37
  615. sta $01
  616. rts
  617.  
  618. //-----------------------------------------------------------------------
  619.  
  620. cshow: lda mchar
  621. tax
  622. lsr
  623. lsr
  624. lsr
  625. lsr
  626. sta vchr
  627. txa
  628. and #$0f
  629. sta vchr+1
  630.  
  631. lda vchr
  632. asl
  633. asl
  634. asl
  635. tax
  636. ldy #$00
  637. copy1: lda cyfry,x
  638. lsr
  639. lsr
  640. sta spr2,y
  641. inx
  642. iny
  643. iny
  644. iny
  645. cpy #$08*3
  646. bne copy1
  647.  
  648. lda vchr+1
  649. asl
  650. asl
  651. asl
  652. tax
  653. ldy #$00
  654. copy2: lda cyfry,x
  655. sta spr2+1,y
  656. inx
  657. iny
  658. iny
  659. iny
  660. cpy #$08*3
  661. bne copy2
  662.  
  663. lda #$00
  664. sta help
  665. lda mchar
  666. asl
  667. rol help
  668. asl
  669. rol help
  670. asl
  671. rol help
  672. sta skad+1
  673. lda help
  674. clc
  675. adc #$d8
  676. sta skad+2
  677.  
  678. lda #$33
  679. sta $01
  680. ldx #$00
  681. ldy #$00
  682. skad: lda $ffff,x
  683. sta spr2+2,y
  684. iny
  685. iny
  686. iny
  687. inx
  688. cpx #$08
  689. bne skad
  690. lda #$37
  691. sta $01
  692. rts
  693.  
  694. //-----------------------------------------------------------------------
  695.  
  696. cwpis: sec
  697. sbc #$30
  698. jmp ok1
  699. lwpis: sec
  700. sbc #$37
  701. ok1: sta mchar
  702. jsr cshow
  703. asl mchar
  704. asl mchar
  705. asl mchar
  706. asl mchar
  707.  
  708.  
  709. read2: jsr $ffe4
  710. beq read2
  711.  
  712. ldx #$09
  713. chc1: cmp chars,x
  714. beq csecond
  715. dex
  716. bpl chc1
  717. ldx #$05
  718. chc2: cmp lits,x
  719. beq lsecond
  720. dex
  721. bpl chc2
  722. jmp read2
  723.  
  724. csecond: sec
  725. sbc #$30
  726. jmp ok
  727. lsecond: sec
  728. sbc #$37
  729. ok: ora mchar
  730. sta mchar
  731. jsr cshow
  732. jmp read
  733.  
  734. vblank: lda $d011
  735. bpl *-3
  736. lda $d011
  737. bmi *-3
  738. rts
  739.  
  740. //--------------------------------------------------------------------------------------------
  741.  
  742. irq: inc $d019
  743.  
  744. lda #$00
  745. sta $3fff
  746. lda do11
  747. and #$f0
  748. ora #$03
  749. sta $d011
  750. ldx #$0b
  751. dex
  752. bne *-1
  753. lda #stripeCol
  754. sta $d021
  755. ldx #$0b
  756. dex
  757. bne *-1
  758. stx $d021
  759. lda c3f
  760. sta $3fff
  761. ldx #$14
  762. dex
  763. bne *-1
  764. lda do11
  765. sta $d011
  766.  
  767. ldx cpnt
  768. lda coltab,x
  769. sta $d027
  770. cpx #34
  771. bne end
  772. lda #$00
  773. sta cpnt
  774.  
  775. end: inc cpnt
  776.  
  777. lda #<irqa
  778. ldy #>irqa
  779. sta $0314
  780. sty $0315
  781. lda #$31
  782. sta $d012
  783.  
  784. inc $d019
  785. jmp $ea31
  786.  
  787. //--------------------------------------------------------------------------------------
  788.  
  789. irqa: inc $d019
  790.  
  791. lda #$00
  792. sta $3fff
  793. ldx #$02
  794. dex
  795. bne *-1
  796. lda #stripeCol
  797. sta $d021
  798. ldx #$0a
  799. dex
  800. bne *-1
  801. stx $d021
  802. lda c3f
  803. sta $3fff
  804.  
  805. lda #<irq
  806. ldy #>irq
  807. sta $0314
  808. sty $0315
  809. lda #$f9
  810. sta $d012
  811.  
  812. inc $d019
  813. jmp $ea81
  814.  
  815. //--------------------------------------------------------
  816.  
  817. chars: .text "0123456789"
  818. lits: .text "abcdef"
  819.  
  820. // luminances
  821.  
  822. coltab: .byte $00,$06,$09,$0b,$02,$04,$08,$0c,$0e,$0a,$05,$0f,$03,$07,$0d,$01,$0d,$07,$03,$0f,$05,$0a,$0e,$0c,$08,$04,$02,$0b,$09,$06,$00,$00,$00
  823.  
  824. cyfry: .byte $70,$d8,$d8,$d8,$d8,$d8
  825. .byte $d8,$70,$30,$70,$30,$30
  826. .byte $30,$30,$30,$30,$70,$d8
  827. .byte $18,$30,$60,$c0,$c0,$f8
  828. .byte $70,$d8,$18,$30,$18,$18
  829. .byte $d8,$70,$d8,$d8,$d8,$78
  830. .byte $18,$18,$18,$18,$f8,$c0
  831. .byte $f0,$18,$18,$d8,$d8,$70
  832. .byte $70,$d8,$c0,$f0,$d8,$d8
  833. .byte $d8,$70,$f0,$18,$38,$18
  834. .byte $18,$18,$18,$18,$70,$d8
  835. .byte $d8,$70,$d8,$d8,$d8,$70
  836. .byte $70,$d8,$d8,$d8,$78,$18
  837. .byte $d8,$70,$70,$d8,$d8,$f8
  838. .byte $d8,$d8,$d8,$d8,$f0,$d8
  839. .byte $d8,$f0,$d8,$d8,$d8,$f0
  840. .byte $70,$d8,$c0,$c0,$c0,$c0
  841. .byte $d8,$70,$f0,$d8,$d8,$d8
  842. .byte $d8,$d8,$d8,$f0,$f0,$c0
  843. .byte $c0,$f0,$c0,$c0,$c0,$f8
  844. .byte $f8,$c0,$c0,$f0,$c0,$c0
  845. .byte $c0,$c0
  846.  
  847. shape: .byte %11111111,0,0
  848. .byte %10000001,0,0
  849. .byte %10000001,0,0
  850. .byte %10000001,0,0
  851. .byte %10000001,0,0
  852. .byte %10000001,0,0
  853. .byte %10000001,0,0
  854. .byte %11111111,0,0
  855. .byte 0,0,0,0,0,0
  856. .byte 0,0,0,0,0,0
  857. .byte 0,0,0,0,0,0
  858. .byte 0,0,0,0,0,0
  859. .byte 0,0,0,0,0,0
  860. .byte 0,0,0,0,0,0
  861. .byte 0,0,0
  862.  
  863. pocztab: .byte >tabela+$0f00
  864. .byte >tabela+$0e00
  865. .byte >tabela+$0d00
  866. .byte >tabela+$0c00
  867. .byte >tabela+$0b00
  868. .byte >tabela+$0a00
  869. .byte >tabela+$0900
  870. .byte >tabela+$0800
  871. .byte >tabela+$0700
  872. .byte >tabela+$0600
  873. .byte >tabela+$0500
  874. .byte >tabela+$0400
  875. .byte >tabela+$0300
  876. .byte >tabela+$0200
  877. .byte >tabela+$0100
  878. .byte >tabela+$00
Add Comment
Please, Sign In to add comment