0100 ; TRIGGER THROTTLE, SOURCE CODE›0110 ; BY MATTHEW RATCLIFF›0120 ; (c)1987, ANTIC PUBLISHING›0130 JIFFY = $14›0140 CTL_S = 190 ; INTERNAL CODE›0150 CTL_Q = 175 ; INTERNAL CODE›0160 VVBLKD = $0224›0170 CH = $02FC›0180 ; Operating system equates:›0190 CIO = $E456›0200 ICCOM = $0342›0210 ICBAL = $0344›0220 ICBAH = $0345›0230 ICBLL = $0348›0240 ICBLH = $0349›0250 ICAX1 = $034A›0260 ICAX2 = $034B›0270 TRIG0 = $D010 ;Joystick trig 0›0280 PUTBIN = $0B›0290 ;›0300 *= $4000›0310 INIT›0320 LDA VVBLKD ; Install›0330 STA VEXIT ; VBI›0340 LDA VVBLKD+1 ; routine›0350 STA VEXIT+1›0360 LDA # START›0380 LDX JIFFY›0390 HOLD›0400 CPX JIFFY ; Sync so›0410 BEQ HOLD ; VBI won't›0420 ;›0430 STA VVBLKD ; crash the›0440 STY VVBLKD+1 ; installation›0450 LDA #CTL_S ; procedure.›0460 STA THROTTLE›0470 LDX #0›0480 STX BUSYCTL ;Enable throt.›0490 LDA #PUTBIN ; Print title›0500 STA ICCOM ; screen.›0510 LDA LEN›0520 STA ICBLL›0530 STX ICBLH›0540 LDA # TITLE›0570 STA ICBAH›0580 JSR CIO›0590 RTS ; Back to DOS›0600 ;›0610 TITLE›0620 .BYTE "} Áîôéã§ó Ôòéççåò Ôèòïôôìå ",155›0630 .BYTE " By Matthew Ratcliff ",155,155›0640 .BYTE "Press Joystick trigger to pause",155›0650 .BYTE "(send ^S) scrolling text from modem.",155›0660 .BYTE "Press trigger again to continue",155›0670 .BYTE "(send a ^Q).",155,155›0680 LEN›0690 .BYTE *-TITLE›0700 ;›0710 ; Trigger Throttle installed.›0720 ; Actual program is below.›0730 ;›0740 *= $0100›0750 ; Place this code in the lower›0760 ; 62 bytes of the 256-byte›0770 ; system stack at $0100-$01FF.›0780 ; (Should be safe!)›0790 ;›0800 VEXIT›0810 .WORD 0 ;VBI exit vector›0820 THROTTLE›0830 .BYTE 0 ; Space or BS›0840 BUSYCTL›0850 .BYTE 0 ; Control flag›0860 START›0870 PHP ; VBI starts›0880 PHA ; Save all stats›0890 LDA BUSYCTL ; and regs.›0900 BNE TIMIT ;ON›0910 ;›0920 TESTON›0930 LDA TRIG0 ; Busy on›0940 ; request?›0950 BNE EXIT ; No. No change.›0960 ;›0970 INC BUSYCTL ;OFF, Turn it ON›0980 LDA THROTTLE ; Send next›0990 ; throttle state.›1000 STA CH›1010 JSR TOGGLE ;Change throttle›1020 ; state.›1030 EXIT›1040 PLA ; Restore stats›1050 PLP ; and reg & exit›1060 JMP (VEXIT)›1070 ;›1080 TIMIT›1090 LDA TRIG0 ; Trig released?›1100 BEQ EXIT ; No, time-out›1110 ;›1120 LDA #0 ; Yes, re-enable›1130 STA BUSYCTL›1140 JMP EXIT›1150 ;›1160 TOGGLE ; If ^s, then›1170 CMP #CTL_S ; next is ^q›1180 BNE TOGQ›1190 ;›1200 LDA #CTL_Q›1210 STA THROTTLE›1220 RTS ›1230 ;›1240 TOGQ›1250 LDA #CTL_S›1260 STA THROTTLE›1270 RTS ›1280 ;›1290 *= $02E0 ; init addr.›1300 .WORD INIT ; for LOAD›1310 .END ›