home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Antic Magazine 1985 October
/
Antic_Magazine_1985_10_Antic.atr
/
finescrl.m65
< prev
next >
Wrap
Text File
|
2023-02-26
|
3KB
|
1 lines
0 ; FINE SCROLLING, LISTING 1¢10 ; BY MARK ANDREWS¢20 ; ANTIC PUBLISHING¢30 ;¢40 *= $3000¢45 JMP INIT¢50 ;¢60 SDMCTL = $022F¢70 ;¢80 SDLSTL = $0230¢90 SDLSTH = $0231¢0100 ;¢0110 COLOR0 = $02C4 ;OS COLOR REGISTER¢0120 COLOR1 = $02C5¢0130 COLOR2 = $02C6¢0140 COLOR3 = $02C7¢0150 COLOR4 = $02C8¢0160 HSCROL = $D404¢0162 VVBLKI = $0222 ;OS INTERRUPT VECTOR¢0164 SYSVBV = $E45F ;INTERRUPT ENABLE VECTOR¢0166 SETVBI = $E45C ;SET VERTICAL BLANK INTERRUPT VECTOR¢0168 XITVBL = $E462 ;EXIT VBI VECTOR¢0170 TCKPTR = $2000¢0180 FSCPTR = TCKPTR+1¢0190 .OPT OBJ¢0200 ;¢0210 ; DISPLAY LIST DATA¢0220 ;¢0230 START¢0240 LINE1 .SBYTE " ANTIC PRESENTS "¢0250 LINE2 .SBYTE " "¢0260 .SBYTE " fine scrolling "¢0270 LINE3 .SBYTE " On Your"¢0280 .SBYTE " Atari "¢0290 LINE4 .SBYTE " BY (YOUR NAME) "¢0300 ;¢0310 ; DISPLAY LIST¢0320 ;¢0330 HLST NOP ;('HELLO' LIST)¢0340 .BYTE $70,$70,$70¢0350 .BYTE $70,$70,$70,$70,$70¢0360 .BYTE $46¢0370 .WORD LINE1¢0380 .BYTE $70,$70,$70,$70,$57¢0390 SCROLN NOP ;(THIS IS THE LINE WE'LL SCROLL)¢0400 .WORD $00 ; A BLANK TO BE FILLED IN LATER¢0410 .BYTE $70,$42¢0420 .WORD LINE3¢0430 .BYTE $70,$70,$70,$70,$46¢0440 .WORD LINE4¢0450 .BYTE $70,$70,$70,$70,$70¢0460 .BYTE $41¢0470 .WORD HLST¢0480 ;¢0490 ; RUN PROGRAM¢0500 ;¢0510 INIT NOP ;PREPARE TO RUN PROGRAM¢0520 LDA COLOR3 ; SET COLOR REGISTER¢0530 STA COLOR1¢0540 LDA COLOR4¢0550 STA COLOR2¢0560 ;¢0570 LDA #0 ; TELL ANTIC WHERE DISPLAY LIST IS¢0580 STA SDMCTL¢0590 LDA #HLST&255¢0600 STA SDLSTL¢0610 LDA #HLST/256¢0620 STA SDLSTH¢0630 LDA #$22¢0640 STA SDMCTL¢0645 JSR TCKSET ; INITIAIZE TICKER ADDRESS¢0650 ;¢0660 ; FINE-SCROLLING ROUTINE¢0680 LDA #42 ; # OF CHARACTERS IN SCROLL LINE¢0690 STA TCKPTR¢0700 LDA #8¢0710 STA FSCPTR ; NUMBER OF COLOR CLOCKS TO FINE-SCROLL¢0720 ;¢0730 ; ENABLE INTERRUPT¢0740 ;¢0750 LDY #TCKINT&255¢0760 LDX #TCKINT/256¢0770 LDA #6¢0780 JSR SETVBI¢0790 ;¢0800 ; TICKER INTERRUPT¢0810 ;¢0820 TCKINT¢0830 LDA #SCROLL&255¢0840 STA VVBLKI¢0850 LDA #SCROLL/256¢0860 STA VVBLKI+1¢0870 ;¢0880 INFIN¢0890 JMP INFIN ; INFINITE LOOP¢0900 ;¢0910 SCROLL¢0920 LDX FSCPTR ;8 TO START¢0925 DEY ¢0930 DEX ¢0940 STX HSCROL¢0950 BNE CONT¢0960 LDX #8¢0970 CONT NOP ; (CONTINUE)¢0980 STX FSCPTR¢0990 CPX #7¢1000 BEQ COARSE¢1010 JMP SYSVBV¢1020 COARSE¢1030 LDY TCKPTR ; NUMBER OF CHARACTERS TO SCROLL¢1040 DEY ¢1050 BNE SCORSE ; LOOP BACK TILL ENTIRE LINE IS SCROLLED¢1060 LDY #42¢1070 JSR TCKSET ; RESET TICKER LINE¢1080 SCORSE NOP ; DO COARSE SCROLL¢1090 STY TCKPTR¢1100 INC SCROLN ; LOW BYTE OF ADDRESS¢1110 BNE RETURN¢1120 INC SCROLN+1 ; HIGH BYTE OF ADDRESS¢1130 RETURN¢1140 JMP SYSVBV¢1150 ;¢1160 TCKSET¢1170 LDA #LINE2&255¢1180 STA SCROLN¢1190 LDA #LINE2/256¢1200 STA SCROLN+1¢1210 ENDIT¢1220 RTS ¢1280 *= $02E0¢1290 .WORD INIT¢