home *** CD-ROM | disk | FTP | other *** search
/ 64'er Special 2 / 64er_Magazin_Sonderheft_02_86-02_1986_Markt__Technik_de.d64 / quell.screencopy (.txt) < prev    next >
Commodore BASIC  |  2022-10-26  |  8KB  |  215 lines

  1. 10 sys 9*4096        ;profi-ass aufruf
  2. 12 .opt oo
  3. 13 *= $c000          ;startadresse
  4. 14 ;
  5. 20 flag  = $028d
  6. 21 taste = $cb
  7. 22 irq   = $ea31
  8. 29 ;-------------
  9. 30 ;
  10. 110 sei                  ;init
  11. 111 lda #<beg :ldy #>beg
  12. 112 sta $0314 :sty $0315
  13. 113 cli
  14. 115 lda #$00 :ldy #$a0   ;$a000 als
  15. 116 sta $b3  :sty $b4    ;zeiger f.save
  16. 117 lda #5   :sta $02    ;counter
  17. 122 rts
  18. 123 ;--------------------
  19. 130 ;
  20. 131 beg lda flag       ;shift/ctrl-flag
  21. 132 :   lsr :bcs tshift
  22. 133 :   lsr
  23. 134 :   lsr :bcs tctrl
  24. 135 :  lda taste
  25. 140 :  cmp #4 :beq store1 ;ftaste gedr.
  26. 145 :  cmp #5 :beq store2
  27. 150 :  cmp #6 :beq store3
  28. 155 :  cmp #3 :beq store4
  29. 160 :  jmp irq
  30. 163 ;---------------------
  31. 164 ;
  32. 170 tshift jmp shift  ;in akt.bildsch.
  33. 171 tctrl dec $02     ;counter =0 "?"
  34. 172 lda $02 :beq contr;dann save
  35. 190 jmp irq           ;sonst weiter irq
  36. 200 contr jmp ctrl
  37. 220 ;
  38. 221 ;==================================
  39. 222 ;store1-4 => der aktuelle bildschirm     wird im ram (a000-bfff) abgelegt .
  40. 225 ;==================================
  41. 227 ;
  42. 230 store1 jsr up1  :sta $fd
  43. 232 :      ldy #$a0 :sty $fe
  44. 240 :      jsr copy
  45. 245 :      jsr up2  :ldy #$a4
  46. 255 :      jmp cop
  47. 269 ;
  48. 270 store2 jsr up1  :sta $fd
  49. 275 :      ldy #$a8 :sty $fe
  50. 285 :      jsr copy
  51. 290 :      jsr up2  :ldy #$ac
  52. 300 :      jmp cop
  53. 314 ;
  54. 315 store3 jsr up1  :sta $fd
  55. 320 :      ldy #$b0 :sty $fe
  56. 330 :      jsr copy
  57. 335 :      jsr up2  :ldy #$b4
  58. 345 :      jmp cop
  59. 359 ;
  60. 360 store4 jsr up1  :sta $fd
  61. 365 :      ldy #$b8 :sty $fe
  62. 375 :      jsr copy
  63. 380 :      jsr up2  :ldy #$bc
  64. 390 :      jmp cop
  65. 410 ;-------------------
  66. 450 up1 lda #$00 :ldy #$04 ;$0400 nach
  67. 455 :   sta $fb  :sty $fc  ;$fb/c
  68. 460 :   rts
  69. 464 ;
  70. 465 up2 lda #$00 :ldy #$d8 ;$d800 nach
  71. 470 :   sta $fb  :sty $fc  ;$fb/c
  72. 475 :   rts
  73. 479 ;
  74. 480 cop sta $fd :sty $fe
  75. 485 :   jsr copy
  76. 490 :   jmp irq
  77. 491 ;--------------------
  78. 492 shift lda taste
  79. 493 :     cmp #4 :beq hole1
  80. 494 :     cmp #5 :beq hole2
  81. 495 :     cmp #6 :beq hole3
  82. 496 :     cmp #3 :beq hole4
  83. 497 :     jmp irq
  84. 498 ;---------------------
  85. 499 ;
  86. 500 ;==================================
  87. 501 ;hole1-4 => der gespeicherte bildschirm wird in d.aktuellen zurueckkopiert.
  88. 502 ;==================================
  89. 505 hole1 lda $01  :pha
  90. 510 :     lda #$36 :sta $01
  91. 515 :     jsr up3  :sta $fb
  92. 520 :     ldy #$a0 :sty $fc
  93. 525 :     jsr copy
  94. 530 :     jsr up4  :ldy #$a4
  95. 540 :     jmp cop2
  96. 545 ;
  97. 555 hole2 lda $01  :pha
  98. 560 :     lda #$36 :sta $01
  99. 565 :     jsr up3  :sta $fb
  100. 570 :     ldy #$a8 :sty $fc
  101. 580 :     jsr copy
  102. 585 :     jsr up4  :ldy #$ac
  103. 595 :     jmp cop2
  104. 600 ;
  105. 610 hole3 lda $01  :pha
  106. 615 :     lda #$36 :sta $01
  107. 620 :     jsr up3  :sta $fb
  108. 625 :     ldy #$b0 :sty $fc
  109. 635 :     jsr copy
  110. 640 :     jsr up4  :ldy #$b4
  111. 650 :     jmp cop2
  112. 655 ;
  113. 665 hole4 lda $01  :pha
  114. 670 :     lda #$36 :sta $01
  115. 675 :     jsr up3  :sta $fb
  116. 680 :     ldy #$b8 :sty $fc
  117. 690 :     jsr copy
  118. 695 :     jsr up4  :ldy #$bc
  119. 705 :     jmp cop2
  120. 709 ;--------------------
  121. 710 ;
  122. 720 up3 lda #$00 :ldy #$04 ;$0400 nach
  123. 725 :   sta $fd  :sty $fe  ;$fd/e
  124. 730 :   rts
  125. 734 ;
  126. 735 up4 lda #$00 :ldy #$d8 ;$d800 nach
  127. 740 :   sta $fd  :sty $fe  ;$fd/e
  128. 745 :   rts
  129. 749 ;
  130. 750 cop2 sta $fb :sty $fc
  131. 755 :    jsr copy
  132. 765 :    pla :sta $01
  133. 770 :    jmp irq
  134. 775 ;---------------------
  135. 776 ctrl lda #5 :sta $02 ;setze zaehler
  136. 780 :    lda taste       ;ctrl/f-taste
  137. 781 :    cmp #4 :beq save1;gedrueckt"?"
  138. 782 :    cmp #5 :beq save2
  139. 783 :    cmp #6 :beq save3
  140. 784 :    cmp #3 :beq save4
  141. 785 :    jmp irq
  142. 786 ;
  143. 788 ;==================================
  144. 789 ;save 1-4 =>die bildschirme unter        dem rom werden abgespeichert.
  145. 790 ;==================================
  146. 791 save1 sei
  147. 792 :     lda $01   :pha
  148. 794 :     lda #$36  :sta $01
  149. 795 :     ldx #8    :jsr $ffba
  150. 796 :     lda #8
  151. 797 :     ldx #<na1 :ldy #>na1
  152. 798 :     jsr $ffbd
  153. 799 :     lda #$b3
  154. 800 :     ldx #$00  :ldy #$a8
  155. 801 :     jsr $ffd8
  156. 802 :     pla :sta $01
  157. 803 :     cli :jmp irq
  158. 805 ;
  159. 810 save2 sei
  160. 811 :     lda $01   :pha
  161. 812 :     lda #$36  :sta $01
  162. 813 :     ldx #8    :jsr $ffba
  163. 814 :     lda #8
  164. 815 :     ldx #<na2 :ldy #>na2
  165. 816 :     jsr $ffbd
  166. 817 :     lda #$b3
  167. 818 :     ldx #$a7  :ldy #$af
  168. 819 :     jsr $ffd8
  169. 820 :     pla :sta $01
  170. 822 :     cli :jmp irq
  171. 825 ;
  172. 830 save3 sei
  173. 831 :     lda $01   :pha
  174. 832 :     lda #$36  :sta $01
  175. 833 :     ldx #8    :jsr $ffba
  176. 834 :     lda #8
  177. 835 :     ldx #<na3 :ldy #>na3
  178. 836 :     jsr $ffbd
  179. 837 :     lda #$b3
  180. 838 :     ldx #$7b  :ldy #$b7
  181. 839 :     jsr $ffd8
  182. 840 :     pla :sta $01
  183. 843 :     cli :jmp irq
  184. 845 ;
  185. 850 save4 sei
  186. 851 :     lda $01   :pha
  187. 852 :     lda #$36  :sta $01
  188. 853 :     ldx #8    :jsr $ffba
  189. 854 :     lda #8
  190. 855 :     ldx #<na4 :ldy #>na4
  191. 856 :     jsr $ffbd
  192. 857 :     lda #$b3
  193. 858 :     ldx #$ff  :ldy #$bf
  194. 859 :     jsr $ffd8
  195. 860 :     pla :sta $01
  196. 862 :     cli :jmp irq
  197. 900 ;==================================
  198. 901 ;startadresse ==> in $fb/c               endadresse   ==> in $fd/e
  199. 902 ;die angegebenen bereiche werden mit     diesem unterprg. kopiert.
  200. 903 ;==================================
  201. 905 copy ldx #4 :ldy #0
  202. 910 n lda ($fb),y
  203. 915 : sta ($fd),y
  204. 920 : iny
  205. 925 : bne n
  206. 930 : inc $fc :inc $fe
  207. 935 : dex
  208. 940 : bne n
  209. 945 : rts
  210. 950 ;---------------------
  211. 960 na1 .asc "screen 1"
  212. 961 na2 .asc "screen-2"
  213. 962 na3 .asc "screen-3"
  214. 963 na4 .asc "screen-4"
  215.