home *** CD-ROM | disk | FTP | other *** search
/ Antic Magazine 1989 October / Antic_Magazine_1989_10_Antic_Side_A.atr / profile.m65 < prev    next >
Text File  |  2023-02-26  |  2KB  |  1 lines

  1. 10 ;BASIC PROFILER SOURCE CODE¢20 ; BY STAN LACKEY¢30 ;¢40 ; 130XE VERSION BY ERIC WOODRUFF¢50 ; (c) 1989, ANTIC PUBLISHING, INC.¢60 ;¢70 ;¢80 ; DEFINITIONS:¢90 STMCUR =  $8A     ;Pointer into user program.¢0100 MEMPTR = $D0    ;Memory pointer.¢0110 PROFEN = $04FE  ;Profiler On/Off flag.¢0120 PORTB = $D301¢0130 ;¢0140     *=  $0600   ;Relocatable.¢0150 ;¢0160 ;  SAMPLE is the timer interrupt¢0170 ; routine. It takes the current¢0180 ; line number, multiplies it by¢0190 ; 2, and swaps in the correct¢0200 ; bank of extended RAM to bump¢0210 ; up the 16-bit line counter.¢0220 ; With the extra 64K, each line¢0230 ; (0-32767) has its own counter.¢0240 ;¢0250 SAMPLE¢0260     LDA PROFEN  ;Is profiler¢0270     BEQ OUT     ;active?¢0280 ;If not, exit.¢0290 ;¢0300 SPL1¢0310     TYA         ;Must save Y.¢0320     PHA ¢0330     LDA PORTB   ;Save PORTB.¢0340     PHA ¢0350     LDY #0      ;Get the¢0360     LDA (STMCUR),Y ;line number.¢0370     STA MEMPTR¢0380     INY ¢0390     LDA (STMCUR),Y ;High byte.¢0400     BMI ERR     ;Line # > 32767.¢0410 ;Line ok, so increment counter.¢0420 ;¢0430     ASL A       ;Multiply by¢0440     CLC         ;two to get¢0450     ASL MEMPTR  ;address in¢0460     ADC #0      ;extended RAM.¢0470     CMP #$40    ;Select bank 0?¢0480     BCS SB1¢0490     LDY #0¢0500     BEQ SELC¢0510 SB1 CMP #$80    ;Select bank 1?¢0520     BCS SB2¢0530     LDY #1¢0540     BNE SELC¢0550 SB2 CMP #$C0    ;Select bank 2?¢0560     BCS SB3¢0570     LDY #2¢0580     BNE SELC¢0590 SB3 LDY #3      ;Select bank 3.¢0600 SELC AND #$3F¢0610     ORA #$40    ;Find counter¢0620     STA MEMPTR+1 ;in RAM.¢0630     TYA ¢0640     ASL A       ;Bank * 4 + 193.¢0650     ASL A¢0660     CLC ¢0670     ADC #193¢0680     STA PORTB   ;Switch to it.¢0690     LDY #0      ;Increment the¢0700     LDA (MEMPTR),Y ;line's¢0710     CLC         ;counter.¢0720     ADC #1¢0730     STA (MEMPTR),Y¢0740     BCC EXIT¢0750     INY         ;Carry, so¢0760     LDA (MEMPTR),Y ;increment¢0770     ADC #0      ;high half.¢0780     STA (MEMPTR),Y¢0790     BNE EXIT    ;Overflow test.¢0800 ERR¢0810     LDA #0      ;Stop: Overflow¢0820     STA PROFEN  ;or line>32767.¢0830 EXIT¢0840     PLA ¢0850     STA PORTB   ;Restore PORTB.¢0860     PLA ¢0870     TAY         ;Restore Y reg.¢0880 OUT PLA ¢0890     RTI         ;End of SAMPLE.¢əəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəə