Classic Computer Magazine Archive 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