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 >
Wrap
Commodore BASIC
|
2022-10-26
|
8KB
|
215 lines
10 sys 9*4096 ;profi-ass aufruf
12 .opt oo
13 *= $c000 ;startadresse
14 ;
20 flag = $028d
21 taste = $cb
22 irq = $ea31
29 ;-------------
30 ;
110 sei ;init
111 lda #<beg :ldy #>beg
112 sta $0314 :sty $0315
113 cli
115 lda #$00 :ldy #$a0 ;$a000 als
116 sta $b3 :sty $b4 ;zeiger f.save
117 lda #5 :sta $02 ;counter
122 rts
123 ;--------------------
130 ;
131 beg lda flag ;shift/ctrl-flag
132 : lsr :bcs tshift
133 : lsr
134 : lsr :bcs tctrl
135 : lda taste
140 : cmp #4 :beq store1 ;ftaste gedr.
145 : cmp #5 :beq store2
150 : cmp #6 :beq store3
155 : cmp #3 :beq store4
160 : jmp irq
163 ;---------------------
164 ;
170 tshift jmp shift ;in akt.bildsch.
171 tctrl dec $02 ;counter =0 "?"
172 lda $02 :beq contr;dann save
190 jmp irq ;sonst weiter irq
200 contr jmp ctrl
220 ;
221 ;==================================
222 ;store1-4 => der aktuelle bildschirm wird im ram (a000-bfff) abgelegt .
225 ;==================================
227 ;
230 store1 jsr up1 :sta $fd
232 : ldy #$a0 :sty $fe
240 : jsr copy
245 : jsr up2 :ldy #$a4
255 : jmp cop
269 ;
270 store2 jsr up1 :sta $fd
275 : ldy #$a8 :sty $fe
285 : jsr copy
290 : jsr up2 :ldy #$ac
300 : jmp cop
314 ;
315 store3 jsr up1 :sta $fd
320 : ldy #$b0 :sty $fe
330 : jsr copy
335 : jsr up2 :ldy #$b4
345 : jmp cop
359 ;
360 store4 jsr up1 :sta $fd
365 : ldy #$b8 :sty $fe
375 : jsr copy
380 : jsr up2 :ldy #$bc
390 : jmp cop
410 ;-------------------
450 up1 lda #$00 :ldy #$04 ;$0400 nach
455 : sta $fb :sty $fc ;$fb/c
460 : rts
464 ;
465 up2 lda #$00 :ldy #$d8 ;$d800 nach
470 : sta $fb :sty $fc ;$fb/c
475 : rts
479 ;
480 cop sta $fd :sty $fe
485 : jsr copy
490 : jmp irq
491 ;--------------------
492 shift lda taste
493 : cmp #4 :beq hole1
494 : cmp #5 :beq hole2
495 : cmp #6 :beq hole3
496 : cmp #3 :beq hole4
497 : jmp irq
498 ;---------------------
499 ;
500 ;==================================
501 ;hole1-4 => der gespeicherte bildschirm wird in d.aktuellen zurueckkopiert.
502 ;==================================
505 hole1 lda $01 :pha
510 : lda #$36 :sta $01
515 : jsr up3 :sta $fb
520 : ldy #$a0 :sty $fc
525 : jsr copy
530 : jsr up4 :ldy #$a4
540 : jmp cop2
545 ;
555 hole2 lda $01 :pha
560 : lda #$36 :sta $01
565 : jsr up3 :sta $fb
570 : ldy #$a8 :sty $fc
580 : jsr copy
585 : jsr up4 :ldy #$ac
595 : jmp cop2
600 ;
610 hole3 lda $01 :pha
615 : lda #$36 :sta $01
620 : jsr up3 :sta $fb
625 : ldy #$b0 :sty $fc
635 : jsr copy
640 : jsr up4 :ldy #$b4
650 : jmp cop2
655 ;
665 hole4 lda $01 :pha
670 : lda #$36 :sta $01
675 : jsr up3 :sta $fb
680 : ldy #$b8 :sty $fc
690 : jsr copy
695 : jsr up4 :ldy #$bc
705 : jmp cop2
709 ;--------------------
710 ;
720 up3 lda #$00 :ldy #$04 ;$0400 nach
725 : sta $fd :sty $fe ;$fd/e
730 : rts
734 ;
735 up4 lda #$00 :ldy #$d8 ;$d800 nach
740 : sta $fd :sty $fe ;$fd/e
745 : rts
749 ;
750 cop2 sta $fb :sty $fc
755 : jsr copy
765 : pla :sta $01
770 : jmp irq
775 ;---------------------
776 ctrl lda #5 :sta $02 ;setze zaehler
780 : lda taste ;ctrl/f-taste
781 : cmp #4 :beq save1;gedrueckt"?"
782 : cmp #5 :beq save2
783 : cmp #6 :beq save3
784 : cmp #3 :beq save4
785 : jmp irq
786 ;
788 ;==================================
789 ;save 1-4 =>die bildschirme unter dem rom werden abgespeichert.
790 ;==================================
791 save1 sei
792 : lda $01 :pha
794 : lda #$36 :sta $01
795 : ldx #8 :jsr $ffba
796 : lda #8
797 : ldx #<na1 :ldy #>na1
798 : jsr $ffbd
799 : lda #$b3
800 : ldx #$00 :ldy #$a8
801 : jsr $ffd8
802 : pla :sta $01
803 : cli :jmp irq
805 ;
810 save2 sei
811 : lda $01 :pha
812 : lda #$36 :sta $01
813 : ldx #8 :jsr $ffba
814 : lda #8
815 : ldx #<na2 :ldy #>na2
816 : jsr $ffbd
817 : lda #$b3
818 : ldx #$a7 :ldy #$af
819 : jsr $ffd8
820 : pla :sta $01
822 : cli :jmp irq
825 ;
830 save3 sei
831 : lda $01 :pha
832 : lda #$36 :sta $01
833 : ldx #8 :jsr $ffba
834 : lda #8
835 : ldx #<na3 :ldy #>na3
836 : jsr $ffbd
837 : lda #$b3
838 : ldx #$7b :ldy #$b7
839 : jsr $ffd8
840 : pla :sta $01
843 : cli :jmp irq
845 ;
850 save4 sei
851 : lda $01 :pha
852 : lda #$36 :sta $01
853 : ldx #8 :jsr $ffba
854 : lda #8
855 : ldx #<na4 :ldy #>na4
856 : jsr $ffbd
857 : lda #$b3
858 : ldx #$ff :ldy #$bf
859 : jsr $ffd8
860 : pla :sta $01
862 : cli :jmp irq
900 ;==================================
901 ;startadresse ==> in $fb/c endadresse ==> in $fd/e
902 ;die angegebenen bereiche werden mit diesem unterprg. kopiert.
903 ;==================================
905 copy ldx #4 :ldy #0
910 n lda ($fb),y
915 : sta ($fd),y
920 : iny
925 : bne n
930 : inc $fc :inc $fe
935 : dex
940 : bne n
945 : rts
950 ;---------------------
960 na1 .asc "screen 1"
961 na2 .asc "screen-2"
962 na3 .asc "screen-3"
963 na4 .asc "screen-4"