10 ; This is VBI finescroll that 20 ; more than one page and with 30 ; number of scroll lines 40 ; 50 VDSLST = $0200 60 SDLSTL = $0230 70 SDLSTH = $0231 80 HSCROL = $D404 90 WSYNC = $D40A 0100 NMIEN = $D40E 0110 COLPF3 = $D019 0120 SETVBV = $E45C 0130 XITVBV = $E462 0140 ; 0150 ; 0160 *= $8000 0170 LDA #DLIST&255 0180 STA SDLSTL ;$0230 0190 LDA #DLIST/256 0200 STA SDLSTH ;$0231 0210 LDA #$07 0220 LDY #VBI&255 0230 LDX #VBI/256 0240 JSR SETVBV ;$E45C 0250 LDA #DLI1&255 0260 STA VDSLST ;$0200 0270 LDA #DLI1/256 0280 STA VDSLST+1 ;$0201 0290 LDA #$C0 0300 STA NMIEN ;$D40E 0310 EXIT JMP EXIT ;$0828 0320 NOP 0330 ;------ DL INTERUPPT 1 ------- 0340 DLI1 PHA 0350 TXA 0360 PHA 0370 LDX #$11 0380 L0004 LDA CLDLI1,X ;$08DF 0390 STA WSYNC ;$D40A 0400 STA COLPF3;$D019 0410 DEX 0420 BNE L0004 ;$0835 0430 LDA #DLI2&255 0440 STA VDSLST ;$0200 0450 LDA #DLI2/256 0460 STA VDSLST+1 ;$0201 0470 PLA 0480 TAX 0490 PLA 0500 RTI 0510 ;------ DL INTERUPPT 2 ------- 0520 DLI2 PHA 0530 TXA 0540 PHA 0550 LDX #$11 0560 L0006 LDA CLDLI2,X ;$08EF 0570 STA WSYNC ;$D40A 0580 STA COLPF3;$D019 0590 DEX 0600 BNE L0006 ;$0855 0610 LDA #DLI1&255 0620 STA VDSLST ;$0200 0630 LDA #DLI1/256 0640 STA VDSLST+1 ;$0201 0650 PLA 0660 TAX 0670 PLA 0680 RTI 0690 ;----- DISPLAT LIST DATA ----- 0700 DLIST .BYTE $70,$70,$70,$70,$70,$70,$F0,$57 0710 LOTXT1 .BYTE TEXT1&255 0720 HITXT1 .BYTE TEXT1/256 0730 .BYTE $70,$70,$70,$F0 0740 .BYTE $57 0750 LOTXT2 .BYTE TEXT2&255 0760 HITXT2 .BYTE TEXT2/256 0770 .BYTE $41 0780 .WORD DLIST 0790 ;------- VBI ROUTINE --------- 0800 VBI DEC $0400 0810 LDA $0400 0820 STA HSCROL ;$D404 0830 BPL L0013 ;$08BB 0840 LDA #$07 0850 STA $0400 0860 STA HSCROL ;$D404 0870 INC LOTXT1;$0888 0880 BNE L0015 ;$08B3 0890 INC HITXT1;$0889 0900 L0015 INC LOTXT2;$0890 0910 BNE L0013 ;$08BB 0920 INC HITXT2;$0891 0930 L0013 LDA HITXT1;$0889 0940 CMP #ENDTX1/256 0950 BNE L0021 ;$08C7 0960 LDA LOTXT1 0970 CMP #ENDTX1&255 0980 BNE L0021 0990 LDA #TEXT1/256 1000 STA HITXT1 1010 LDA #TEXT1&255 1020 STA LOTXT1 1030 L0021 LDA HITXT2 1040 CMP #ENDTX2/256 1050 BNE L0020 1060 LDA LOTXT2 1070 CMP #ENDTX2&255 1080 BNE L0020 1090 LDA #TEXT2/256 1100 STA HITXT2 1110 LDA #TEXT2&255 1120 STA LOTXT2 1130 L0020 JMP XITVBV ;$E462 1140 ;---- DL INTERUPPT COLORS ---- 1150 CLDLI1 .BYTE $50,$52,$54,$56,$58,$5A,$5C,$5F 1160 .BYTE $5F,$5C,$5A,$58,$56,$54,$52,$50 1170 CLDLI2 .BYTE $F0,$F2,$F4,$F6,$F8,$FA,$FC,$FF 1180 .BYTE $FF,$FC,$FA,$F8,$F6,$F4,$F2,$F0 1190 ;--------- TEXT DATA --------- 1200 TEXT1 1210 .BYTE "..................greetinx.to.all.atatri.users.in.the.universe.i.really.dont.know.what.to.write.." 1220 .BYTE "..................hi.there.this.is.the.first.scroll.line.as.you.can.see.there.are.two.diffrent" 1230 .BYTE ".scroll.masseges.this.routine.uses.more.than.one.page.and.dli.interuppt.............bye........" 1240 .BYTE "........................." 1250 .BYTE "are.you.still.here..what.are.you.looking.for.there.is.no.more.text............gooood.bbbyyyeee..." 1260 .BYTE "........................." 1270 ENDTX1 1280 TEXT2 1290 .BYTE ".................." 1300 .BYTE "..................this.is.the.second.scroll.text.as.you.can.see.the.two.lines.have.diffrent.data" 1310 .BYTE ".this.small.routine.was.written.using.assembler.edit.cartrige.............bye.................." 1320 .BYTE "i.am.back.......so.what.....go..aaawwwwaaayyy....ok.now.i.will.assemble.the.program............" 1330 .BYTE "......................." 1340 ENDTX2 1350 ;------------------------------ 1360 .END