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