
PROGRAM LISTING: 85-09/COARSE.M65
0 ; COARSE 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 ;
0170 TCKPTR = $2000
0180 ;
0190 .OPT OBJ
0200 ;
0210 ; DISPLAY LIST DATA
0220 ;
0230 START
0240 LINE1 .SBYTE " ANTIC PRESENTS "
0250 LINE2 .SBYTE " "
0260 .SBYTE " coarse 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,$47
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
0650 ;
0660 ; COARSE-SCROLLING ROUTINE
0670 ;
0680 LDA #42 ; # OF CHARACTERS IN SCROLL LINE
0690 STA TCKPTR
0700 JSR TCKSET
0710 ;
0720 COARSE
0730 LDY TCKPTR ; NUMBER OF CHARACTERS IN SCROLL LINE
0740 DEY
0750 BNE SCORSE ; LOOP BACK UNTIL FULL LINE IS SCROLLED
0760 LDY #42 ; NUMBER OF CHARACTERS TO SCROLL
0770 JSR TCKSET
0780 SCORSE NOP ;DO COARSE SCROLL
0790 STY TCKPTR
0800 INC SCROLN ; LOW BYTE OF ADDRESS
0810 BNE LEAP
0820 INC SCROLN+1 ; HIGH BYTE OF ADDRESS
0830 ;
0840 ; DELAY LOOP
0850 ;
0860 LEAP
0870 TYA
0880 PHA ; SAVE Y REGISTER
0890 LDX #$FF
0900 XLOOP
0910 LDY #$80
0920 YLOOP
0925 DEY
0930 BNE YLOOP
0940 ;
0950 DEX
0960 BNE XLOOP
0970 PLA
0980 TAY ; RESTORE Y REG
0990 ;
1000 JMP COARSE
1010 ;
1020 TCKSET
1030 LDA #LINE2&255
1040 STA SCROLN
1050 LDA #LINE2/256
1060 STA SCROLN+1
1070 RTS
1080 *= $02E0
1090 .WORD INIT
Back to previous page