home *** CD-ROM | disk | FTP | other *** search
/ Antic Magazine 1988 April / Antic_Magazine_1988_04_Antic.atr / throttle.m65 < prev    next >
Text File  |  2023-02-26  |  3KB  |  1 lines

  1. 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¢0370     LDY # >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¢0550     STA ICBAL¢0560     LDA # >TITLE¢0570     STA ICBAH¢0580     JSR CIO¢0590     RTS         ; Back to DOS¢0600 ;¢0610 TITLE¢0620     .BYTE "}áIJ∈⌠Θπº≤áק≥Θττσ≥áקΦ≥∩⌠⌠∮σá",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 ¢