Classic Computer Magazine Archive PROGRAM LISTING: 87-04/SLOWLIST.M65


0100 ;SLOWLIST
0110 ;BY MIKE EGGERS AND MATT LOVELESS
0120 ;(c) 1987, ANTIC PUBLISHING
0130     .TITLE "SLOWLIST -- listing controller"
0140 ;
0150 SETVBV = $E45C  ;Set VBLANK.
0160 XITVBV = $E462  ;VBLANK exit.
0170 CONSOL = $D01F  ;Console buttons
0180 CASINI = $02    ;Cassette boot in0181 ;                 init. vector.
0190 BOOTF = $09     ;Boot flag
0200 SSFLAG = $02FF  ;Screen start/
0210 ;                 stop flag.
0220     *=  $0600
0230 SETUP
0240     LDA #SETUP&255 ;Lo byte of
0250 ;                    INIT addr.
0260     STA CASINI
0270     LDA #SETUP/256 ;Hi byte
0280     STA CASINI+1
0290     LDA BOOTF   ;Cass. boot?
0300     ORA #$02
0310     STA BOOTF
0320     LDA #$04    ;Check [OPTION].
0330     BIT CONSOL
0340     BNE ON
0350 ;
0360     RTS         ;If [OPTION] is
0370 ;                 pushed, don't
0380 ;                 set VBLANK
0390 ;                 vectors!
0400 ON
0410     LDX #VBI/256 ;Hi VBI vector.
0420     LDY #VBI&255 ;Lo VBI vector.
0430     LDA #7      ;Use deferred.
0440     JSR SETVBV
0450 ;
0460     RTS 
0470 ;
0480 VBI
0490     LDA #$02    ;Deferred VBLANK
0500 ;                 vectors here.
0510     BIT CONSOL  ;Check [SELECT]
0520     BNE NOSELECT
0530 ;
0540     LDA CNTR    ;[SELECT] pushed
0550     BEQ RESET   ;Counter = 0?
0560 ;
0570     DEC CNTR    ;No. Decrement.
0580     LDA #$01    ;Set SSFLAG.
0590     STA SSFLAG
0600     JMP XITVBV
0610 ;
0620 RESET
0630     LDA SPEED
0640     STA CNTR
0650     LDA #$00    ;Don't pause
0660 ;                 this VBLANK.
0670     STA SSFLAG
0680     JMP XITVBV
0690 ;
0700 NOSELECT
0710     LDA #$01    ;Check [START].
0720     AND CONSOL
0730     EOR #$01    ;Flip the
0740 ;                 [START] bit
0750     STA SSFLAG  ; & set SSFLAG.
0760     JMP XITVBV
0770 ;
0780 CNTR
0790     .BYTE 0
0800 SPEED
0810     .BYTE 4     ;initial delay
0820     *=  $02E0
0830     .WORD SETUP
0840     .END 

Back to previous page