                         .module finally.c
--- 0000                   .dbfile finally.c
                         .area text
                       ;  IX -> 0,x
 9813                  _SCI_isr::
 9813                    .dbfile C:\ICCTJP\include/isrdecl.h
 9813                    .dbfunc SCI_isr
 9813                    .dbline 41
                       ; /************************************************************************************************************************
                       ; *   Program:        finally.c                           *
                       ; *   Description:    This program was written to test the pneumatic                      *
                       ; *                   valves and cylinders.  It will prompt the user  *
                       ; *                   to select the desired function (manual or       *
                       ; *                   automatic positioning) and to select the desired      *
                       ; *                   characteristics of the PWM signal for the       *
                       ; *                   valves.                 *
                       ; *   Programmer:     Scott Nortman                   *
                       ; *   Date:           March, 2000                 *
                       ; ************************************************************************************************************************/
                       ; 
                       ; /**************************** Constants *********************************/
                       ; #define pulse_handler TOC2_isr
                       ; #define tolerance 10 
                       ; #define valve_sensor analog(1)
                       ; /**************************** End of Constants **************************/
                       ; 
                       ; /*************************** Interrupts *********************************/
                       ; #pragma interrupt_handler TOC2_isr, RTI_isr, TOF_isr;
                       ; /*************************** End of Interrupts **************************/
                       ; 
                       ; /************************** Includes ************************************/
                       ; #include <tjpbase.h>
                       ; #include <analog.h>
                       ; #include <vectors.h>
                       ; #include <mil.h>
                       ; #include <hc11.h>
                       ; /************************ End of includes *******************************/
                       ; 
                       ; /************************** Global Variables*****************************/
                       ; long duty_cycle;    //duty_cycle in e clocks
                       ; long period;        //period in e clocks
                       ; int error[3] = {0};
                       ; int desired = 150;
                       ; long count = 0;
                       ;     
                       ; /************************ End of Global Variables ***********************/
                       ; 
                       ; 
                       ; /************************** Function Declarations  **********************/
 9813                  L2:
 9813  3B                rti
                       ;  IX -> 0,x
 9814                  _SPI_isr::
 9814                    .dbfunc SPI_isr
 9814                    .dbline 47
                       ; void init_pulse();      //Initilizes TOC for PWM interrupts
                       ; void pulse_handler();   //This is the function executed at each TOC2_isr
                       ; /******************** End of Function Declarations  *********************/
                       ; 
                       ; 
                       ; /**************************** Main **************************************/
 9814                  L3:
 9814  3B                rti
                       ;  IX -> 0,x
 9815                  _PAIE_isr::
 9815                    .dbfunc PAIE_isr
 9815                    .dbline 53
                       ; 
                       ; void main(void)
                       ; {
                       ;     int Mp, Md;
                       ;     int Kp, Kd;
                       ;     /* VT100 clear screen */ 
 9815                  L4:
 9815  3B                rti
                       ;  IX -> 0,x
 9816                  _PAV_isr::
 9816                    .dbfunc PAV_isr
 9816                    .dbline 59
                       ;     char clear[]= "\x1b\x5B\x32\x4A\x04"; 
                       ;     
                       ;     /* VT100 position cursor at (x,y) = (3,12) command is "\x1b[3;12H"*/
                       ;     char place[]= "\x1b[1;1H";  /*Home*/
                       ;  
                       ;     SET_BIT(PACTL, 0x80);
 9816                  L5:
 9816  3B                rti
                       ;  IX -> 0,x
 9817                  _TOC3_isr::
 9817                    .dbfunc TOC3_isr
 9817                    .dbline 89
                       ;     CLEAR_BIT(PACTL, 0x03);     //Set RTI rate
                       ;     SET_BIT(TMSK2, 0x40);       //Enable RTI interrupt
                       ;         
                       ;     init_pulse();
                       ;     init_analog();
                       ;     init_serial();
                       ; 
                       ;     //printf("%s", clear);  
                       ;     //printf("%s", place);
                       ;     
                       ;     printf("\tTitle:\t\tvalve.c\n"
                       ;   "\tProgrammer:\tScott Nortman\n"
                       ;   "\tDate:\t\tMarch, 2000\n"
                       ;   "\tVersion\t\t1\n\n");
                       ;   
                       ;     printf("PNEUMATIC CYLINDER DIAGNOSTIC PROGRAM\n\n");
                       ;     //printf("Enter the desired period in e clocks:\n");
                       ;     //period = (read_int() * 1000);
                       ;     printf("Enter the proportional gain\n");
                       ;     Kp = read_int();
                       ;     printf("Enter the derivative gain\n");
                       ;     Kd = read_int();
                       ;     INTR_ON();
                       ;     desired = 150;
                       ; 
                       ;     
                       ;     
                       ;     while(1)
                       ;     {
                       ;         
 9817                  L6:
 9817  3B                rti
                       ;  IX -> 0,x
 9818                  _TIC3_isr::
 9818                    .dbfunc TIC3_isr
 9818                    .dbline 101
                       ;         //Proportional control
                       ;         Mp = Kp * error[0];
                       ;         //Derivative Control
                       ;         Md = Kd * (error[0] - error[1]);
                       ;         
                       ;         period = Mp + Md;
                       ;         duty_cycle = (period / 2);
                       ;     
                       ;         if (duty_cycle < 0)
                       ;         {
                       ;             duty_cycle = -1 * duty_cycle;
                       ;             CLEAR_BIT(PORTA, 0x20);
 9818                  L7:
 9818  3B                rti
                       ;  IX -> 0,x
 9819                  _TIC2_isr::
 9819                    .dbfunc TIC2_isr
 9819                    .dbline 107
                       ;         }
                       ;         else
                       ;         {
                       ;             SET_BIT(PORTA, 0x20);
                       ;         }
                       ;         
 9819                  L8:
 9819  3B                rti
                       ;  IX -> 0,x
 981A                  _TIC1_isr::
 981A                    .dbfunc TIC1_isr
 981A                    .dbline 113
                       ;     }/*End While*/
                       ;     
                       ; }/*End Main*/
                       ; 
                       ; 
                       ; /**************************** End of Main *******************************/
 981A                  L9:
 981A  3B                rti
                       ;  IX -> 0,x
 981B                  _IRQ_isr::
 981B                    .dbfunc IRQ_isr
 981B                    .dbline 125
                       ; 
                       ; 
                       ; 
                       ; /************************** Function Defintions *************************/
                       ; 
                       ; void init_pulse(void)
                       ; {
                       ;     INTR_OFF();
                       ;     SET_BIT(TCTL1, 0x80);   //Enable OC2 for falling edge on first sucessful compare (safe default)
                       ;     CLEAR_BIT(TCTL1, 0x40);
                       ;     TOC2 = 0;   //Set TOC2 to zero
                       ;     SET_BIT(TMSK1, 0x40);   //Enable OC2 mask
 981B                  L10:
 981B  3B                rti
                       ;  IX -> 0,x
 981C                  _XIRQ_isr::
 981C                    .dbfunc XIRQ_isr
 981C                    .dbline 131
                       ;     //INTR_ON();
                       ;     
                       ;     printf("End of Init pulse\n\n");
                       ; }
                       ; 
                       ; void pulse_handler()
 981C                  L11:
 981C  3B                rti
                       ;  IX -> 0,x
 981D                  _SWI_isr::
 981D                    .dbfunc SWI_isr
 981D                    .dbline 137
                       ; {   //printf("ISR\n");
                       ; 
                       ; 
                       ;     //enable toggle
                       ;     //CLEAR_BIT(TCTL1, 0x80);
                       ;     //SET_BIT(TCTL1, 0x40);
 981D                  L12:
 981D  3B                rti
                       ;  IX -> 0,x
 981E                  _ILLOP_isr::
 981E                    .dbfunc ILLOP_isr
 981E                    .dbline 143
                       ;     if (duty_cycle <= 100)  
                       ;     //This handles if duty cycle is less than or equal to 100 e clocks ( almost always off)
                       ;     {
                       ;         SET_BIT(TCTL1, 0x80);   //Enable OC2 for falling edge (make sure pin goes low)
                       ;         CLEAR_BIT(TCTL1, 0X40);
                       ;         TOC2 += period;         //Add the period to TOC2
 981E                  L13:
 981E  3B                rti
                       ;  IX -> 0,x
 981F                  _COP_isr::
 981F                    .dbfunc COP_isr
 981F                    .dbline 149
                       ;     }
                       ;     
                       ;     else if ((period - duty_cycle) <= 100)  //This handles what to do if the pin should almost always be high
                       ;     {
                       ;         CLEAR_BIT(TCTL1, 0x80); //Set the pin to rising edge
                       ;         SET_BIT(TCTL1, 0X40);
 981F                  L14:
 981F  3B                rti
                       ;  IX -> 0,x
 9820                  _CLMON_isr::
 9820                    .dbfunc CLMON_isr
 9820                    .dbline 155
                       ;         TOC2 += period;         //Add period
                       ;     }
                       ;     
                       ;     else        //This is for the general case
                       ;     {
                       ;         if (TCTL1 & 0x40)   //Test bit 6.  If it is a one, you are now high and must change to go low
 9820                  L15:
 9820  3B                rti
                         .area data
 9BCC                  _drew::
 9BCC                    .blkw 1
                         .area idata
--- 0000 0000              .word _interrupt_vectors
                         .area data
 9BCE                  _error::
 9BCE                    .blkb 2
                         .area idata
--- 0002 0000              .word 0
                         .area data
--- 0004                   .blkb 4
                         .area idata
--- 0004 00000000          .byte 0,0,0,0
                         .area data
 9BD4                  _desired::
 9BD4                    .blkb 2
                         .area idata
--- 0008 0096              .word 150
                         .area data
 9BD6                  _count::
 9BD6                    .blkb 4
                         .area idata
--- 000A 00000000          .word 0,0
                         .area text
--- 000E                 L17:
--- 000E 1B5B324A0400      .byte 27,91,50,'J,4,0
--- 0014                 L18:
--- 0014 1B5B313B314800    .byte 27,91,49,59,49,'H,0
                       ;  lreg1 -> -4,x
                       ;  lreg2 -> -8,x
                       ;  IX -> 0,x
                       ;          place -> 3,x
                       ;          clear -> 10,x
                       ;             Kd -> 16,x
                       ;             Kp -> 18,x
                       ;             Md -> 20,x
                       ;             Mp -> 22,x
 982E                  _main::
 982E  BD86BA            jsr __enterb
 9831  98                .byte 0x98
 9832                    .dbfile finally.c
 9832                    .dbfunc main
 9832                    .dbline 54
 9832  EC00              ldd 0,x
 9834  C3000A            addd #10
 9837  18CE9821          ldy #L17
 983B  3C                pshx
 983C  8F                xgdx
 983D  CC0006            ldd #6
 9840  BD86A2            jsr __asgnblk
 9843  38                pulx
 9844                    .dbline 57
 9844  EC00              ldd 0,x
 9846  C30003            addd #3
 9849  18CE9827          ldy #L18
 984D  3C                pshx
 984E  8F                xgdx
 984F  CC0007            ldd #7
 9852  BD86A2            jsr __asgnblk
 9855  38                pulx
 9856                    .dbline 59
 9856  18CE1026          ldy #0x1026
 985A  181C0080          bset 0,y,#128
 985E                    .dbline 60
 985E  18CE1026          ldy #0x1026
 9862  181D0003          bclr 0,y,#0x3
 9866                    .dbline 61
 9866  18CE1024          ldy #0x1024
 986A  181C0040          bset 0,y,#64
 986E                    .dbline 63
 986E  BD992B            jsr _init_pulse
 9871                    .dbline 64
 9871  BD813B            jsr _init_analog
 9874                    .dbline 65
 9874  BD8381            jsr _init_serial
 9877                    .dbline 70
 9877  CC9B70            ldd #L19
 987A  BD9442            jsr _printf
 987D                    .dbline 75
 987D  CC9B48            ldd #L20
 9880  BD9442            jsr _printf
 9883                    .dbline 78
 9883  CC9B2B            ldd #L21
 9886  BD9442            jsr _printf
 9889                    .dbline 79
 9889  BD856F            jsr _read_int
 988C  ED12              std 18,x
 988E                    .dbline 80
 988E  CC9B10            ldd #L22
 9891  BD9442            jsr _printf
 9894                    .dbline 81
 9894  BD856F            jsr _read_int
 9897  ED10              std 16,x
 9899  0E                        cli
                       
 989A                    .dbline 83
 989A  CC0096            ldd #150
 989D  FD9BD4            std _desired
 98A0  7E9920            jmp L24
 98A3                  L23:
 98A3                    .dbline 91
 98A3  EC12              ldd 18,x
 98A5  18FE9BCE          ldy _error
 98A9  BD8669            jsr __muli
 98AC  ED16              std 22,x
 98AE                    .dbline 93
 98AE  FC9BCE            ldd _error
 98B1  B39BD0            subd _error+2
 98B4  188F              xgdy
 98B6  EC10              ldd 16,x
 98B8  BD8669            jsr __muli
 98BB  ED14              std 20,x
 98BD                    .dbline 95
 98BD  EC16              ldd 22,x
 98BF  E314              addd 20,x
 98C1  BD8987            jsr __d2lreg
 98C4  18CE9BF1          ldy #_period
 98C8  BD8935            jsr __lreg2y
 98CB                    .dbline 96
 98CB  18CE9BF1          ldy #_period
 98CF  BD88F8            jsr __ly2reg
 98D2  18CE9B0C          ldy #L27
 98D6  BD891E            jsr __ly2reg2
 98D9  BD8B95            jsr __ldiv
 98DC  18CE9BF5          ldy #_duty_cycle
 98E0  BD8935            jsr __lreg2y
 98E3                    .dbline 98
 98E3  18CE9BF5          ldy #_duty_cycle
 98E7  BD88F8            jsr __ly2reg
 98EA  18CE9B08          ldy #L30
 98EE  BD891E            jsr __ly2reg2
 98F1  BD8D86            jsr __lcmp
 98F4  2C22              bge L28
 98F6                    .dbline 100
 98F6  18CE9B04          ldy #L31
 98FA  BD88F8            jsr __ly2reg
 98FD  18CE9BF5          ldy #_duty_cycle
 9901  BD891E            jsr __ly2reg2
 9904  BD8ACD            jsr __lmul
 9907  18CE9BF5          ldy #_duty_cycle
 990B  BD8935            jsr __lreg2y
 990E                    .dbline 101
 990E  18CE1000          ldy #0x1000
 9912  181D0020          bclr 0,y,#0x20
 9916                    .dbline 102
 9916  2008              bra L29
 9918                  L28:
 9918                    .dbline 105
 9918  18CE1000          ldy #0x1000
 991C  181C0020          bset 0,y,#32
 9920                    .dbline 106
 9920                  L29:
 9920                    .dbline 108
 9920                  L24:
 9920                    .dbline 87
 9920  7E98A3            jmp L23
 9923                  L16:
 9923  8F                xgdx
 9924  C30018            addd #24
 9927  8F                xgdx
 9928  35                txs
 9929  38                pulx
 992A  39                rts
                       ;  IX -> 0,x
 992B                  _init_pulse::
 992B  0F                        sei
                       
 992C                    .dbfunc init_pulse
 992C                    .dbline 122
 992C  18CE1020          ldy #0x1020
 9930  181C0080          bset 0,y,#128
 9934                    .dbline 123
 9934  18CE1020          ldy #0x1020
 9938  181D0040          bclr 0,y,#0x40
 993C                    .dbline 124
 993C  CC0000            ldd #0
 993F  FD1018            std 0x1018
 9942                    .dbline 125
 9942  18CE1022          ldy #0x1022
 9946  181C0040          bset 0,y,#64
 994A                    .dbline 128
 994A  CC9AF0            ldd #L33
 994D  BD9442            jsr _printf
 9950                    .dbline 129
 9950                  L32:
 9950  39                rts
                       ;  lreg1 -> -4,x
                       ;  lreg2 -> -8,x
                       ;  IX -> 0,x
 9951                  _TOC2_isr::
 9951  BD86BA            jsr __enterb
 9954  82                .byte 0x82
 9955                    .dbfunc TOC2_isr
 9955                    .dbline 138
 9955  18CE9BF5          ldy #_duty_cycle
 9959  BD88F8            jsr __ly2reg
 995C  18CE9AEC          ldy #L37
 9960  BD891E            jsr __ly2reg2
 9963  BD8D86            jsr __lcmp
 9966  2E29              bgt L35
 9968                    .dbline 141
 9968  18CE1020          ldy #0x1020
 996C  181C0080          bset 0,y,#128
 9970                    .dbline 142
 9970  18CE1020          ldy #0x1020
 9974  181D0040          bclr 0,y,#0x40
 9978                    .dbline 143
 9978  18CE9BF1          ldy #_period
 997C  BD891E            jsr __ly2reg2
                         ; vol
 997F  FC1018            ldd 0x1018
 9982  BD89B9            jsr __ud2lreg
 9985  BD8A84            jsr __ladd
 9988  BD89DF            jsr __lreg2d
 998B  FD1018            std 0x1018
 998E                    .dbline 144
 998E  7E9A32            jmp L36
 9991                  L35:
 9991                    .dbline 146
 9991  18CE9BF1          ldy #_period
 9995  BD88F8            jsr __ly2reg
 9998  18CE9BF5          ldy #_duty_cycle
 999C  BD891E            jsr __ly2reg2
 999F  BD8A9F            jsr __lsub
 99A2  18CE9AEC          ldy #L37
 99A6  BD891E            jsr __ly2reg2
 99A9  BD8D86            jsr __lcmp
 99AC  2E28              bgt L38
 99AE                    .dbline 148
 99AE  18CE1020          ldy #0x1020
 99B2  181D0080          bclr 0,y,#0x80
 99B6                    .dbline 149
 99B6  18CE1020          ldy #0x1020
 99BA  181C0040          bset 0,y,#64
 99BE                    .dbline 150
 99BE  18CE9BF1          ldy #_period
 99C2  BD891E            jsr __ly2reg2
                         ; vol
 99C5  FC1018            ldd 0x1018
 99C8  BD89B9            jsr __ud2lreg
 99CB  BD8A84            jsr __ladd
 99CE  BD89DF            jsr __lreg2d
 99D1  FD1018            std 0x1018
 99D4                    .dbline 151
 99D4  205C              bra L39
 99D6                  L38:
 99D6                    .dbline 155
 99D6  18CE1020          ldy #0x1020
 99DA  181F004028        brclr 0,y,#64,L40
 99DF                    .dbline 157
                       ;         {
                       ;             CLEAR_BIT(TCTL1, 0x40);  //Clear bit 6 to set for falling edge on next interrupt
 99DF  18CE1020          ldy #0x1020
 99E3  181D0040          bclr 0,y,#0x40
 99E7                    .dbline 158
                       ;             SET_BIT(TCTL1, 0X80);
 99E7  18CE1020          ldy #0x1020
 99EB  181C0080          bset 0,y,#128
 99EF                    .dbline 159
                       ;             TOC2 += duty_cycle;     //Add the duty cycle e clocks if you are now high
 99EF  18CE9BF5          ldy #_duty_cycle
 99F3  BD891E            jsr __ly2reg2
                         ; vol
 99F6  FC1018            ldd 0x1018
 99F9  BD89B9            jsr __ud2lreg
 99FC  BD8A84            jsr __ladd
 99FF  BD89DF            jsr __lreg2d
 9A02  FD1018            std 0x1018
 9A05                    .dbline 160
                       ;         }
 9A05  202B              bra L41
 9A07                  L40:
 9A07                    .dbline 164
                       ;         
                       ;         else //if(!(TCTL1 & 0x40))  //Test bit 6.  If it is low, you are now low and must change to go high
                       ;         {
                       ;             SET_BIT(TCTL1, 0xC0);   //Set bit 6 to go high next interrupt
 9A07  18CE1020          ldy #0x1020
 9A0B  181C00C0          bset 0,y,#192
 9A0F                    .dbline 165
                       ;             TOC2 += (period - duty_cycle);
 9A0F  18CE9BF1          ldy #_period
 9A13  BD88F8            jsr __ly2reg
 9A16  18CE9BF5          ldy #_duty_cycle
 9A1A  BD891E            jsr __ly2reg2
 9A1D  BD8A9F            jsr __lsub
 9A20  BD8972            jsr __lregmov
                         ; vol
 9A23  FC1018            ldd 0x1018
 9A26  BD89B9            jsr __ud2lreg
 9A29  BD8A84            jsr __ladd
 9A2C  BD89DF            jsr __lreg2d
 9A2F  FD1018            std 0x1018
 9A32                    .dbline 166
                       ;         }
 9A32                  L41:
 9A32                    .dbline 167
                       ;     }
 9A32                  L39:
 9A32                  L36:
 9A32                    .dbline 170
                       ;     
                       ;     
                       ;     CLEAR_FLAG(TFLG1, 0x40) //Clear the interrupt flag
 9A32  18CE1023          ldy #0x1023
 9A36  181D00BF          bclr 0,y,#0xbf
 9A3A                    .dbline 171
                       ; }   //This is the end of the interrupt routine
 9A3A                  L34:
 9A3A  08                inx
 9A3B  08                inx
 9A3C  35                txs
 9A3D  38                pulx
 9A3E  3B                rti
                       ;  lreg1 -> -4,x
                       ;  lreg2 -> -8,x
                       ;  IX -> 0,x
                       ;  func temp: 2,x - 4,x
 9A3F                  _RTI_isr::
 9A3F  BD86BA            jsr __enterb
 9A42  84                .byte 0x84
 9A43                    .dbfunc RTI_isr
 9A43                    .dbline 175
                       ; 
                       ; void RTI_isr(void)
                       ; {
                       ;     printf("%d\n", valve_sensor);
 9A43  CC0001            ldd #1
 9A46  BD8144            jsr _analog
 9A49  37                pshb
 9A4A  36                psha
 9A4B  CC9AE8            ldd #L43
 9A4E  BD9442            jsr _printf
 9A51  1838              puly
 9A53                    .dbline 176
                       ;     error[2] = error[1];
 9A53  FC9BD0            ldd _error+2
 9A56  FD9BD2            std _error+4
 9A59                    .dbline 177
                       ;     error[1] = error[0];
 9A59  FC9BCE            ldd _error
 9A5C  FD9BD0            std _error+2
 9A5F                    .dbline 178
                       ;     error[0] = desired - valve_sensor;
 9A5F  CC0001            ldd #1
 9A62  BD8144            jsr _analog
 9A65  ED02              std 2,x
 9A67  FC9BD4            ldd _desired
 9A6A  A302              subd 2,x
 9A6C  FD9BCE            std _error
 9A6F                    .dbline 179
                       ;     count += 1;
 9A6F  18CE9BD6          ldy #_count
 9A73  BD88F8            jsr __ly2reg
 9A76  18CE9AE4          ldy #L47
 9A7A  BD891E            jsr __ly2reg2
 9A7D  BD8A84            jsr __ladd
 9A80  18CE9BD6          ldy #_count
 9A84  BD8935            jsr __lreg2y
 9A87                    .dbline 180
                       ;     if (count >=500)
 9A87  18CE9BD6          ldy #_count
 9A8B  BD88F8            jsr __ly2reg
 9A8E  18CE9AE0          ldy #L50
 9A92  BD891E            jsr __ly2reg2
 9A95  BD8D86            jsr __lcmp
 9A98  2D2E              blt L48
 9A9A                    .dbline 182
                       ;     {
                       ;         count = 0;
 9A9A  18CE9B08          ldy #L30
 9A9E  BD88F8            jsr __ly2reg
 9AA1  18CE9BD6          ldy #_count
 9AA5  BD8935            jsr __lreg2y
 9AA8                    .dbline 183
                       ;         if (desired == 150)
 9AA8  FC9BD4            ldd _desired
 9AAB  1A830096          cpd #150
 9AAF  2608              bne L51
 9AB1                    .dbline 185
                       ;         {
                       ;             desired = 100;
 9AB1  CC0064            ldd #100
 9AB4  FD9BD4            std _desired
 9AB7                    .dbline 186
                       ;         }
 9AB7  200F              bra L52
 9AB9                  L51:
 9AB9                    .dbline 188
                       ;         
                       ;         else if (desired == 100)
 9AB9  FC9BD4            ldd _desired
 9ABC  1A830064          cpd #100
 9AC0  2606              bne L53
 9AC2                    .dbline 190
                       ;         {
                       ;             desired = 150;
 9AC2  CC0096            ldd #150
 9AC5  FD9BD4            std _desired
 9AC8                    .dbline 191
                       ;         }
 9AC8                  L53:
 9AC8                  L52:
 9AC8                    .dbline 192
                       ;     }
 9AC8                  L48:
 9AC8                    .dbline 193
                       ;     CLEAR_FLAG(TFLG2, 0x40);
 9AC8  18CE1025          ldy #0x1025
 9ACC  181D00BF          bclr 0,y,#0xbf
 9AD0                    .dbline 194
                       ; }
 9AD0                  L42:
 9AD0  08                inx
 9AD1  08                inx
 9AD2  08                inx
 9AD3  08                inx
 9AD4  35                txs
 9AD5  38                pulx
 9AD6  3B                rti
                       ;  IX -> 0,x
 9AD7                  _TOF_isr::
 9AD7                    .dbfunc TOF_isr
 9AD7                    .dbline 198
                       ; 
                       ; void TOF_isr(void)
                       ; {
                       ;     CLEAR_FLAG(TFLG1, 0x80);
 9AD7  18CE1023          ldy #0x1023
 9ADB  181D007F          bclr 0,y,#0x7f
 9ADF                    .dbline 199
                       ; }
 9ADF                  L55:
 9ADF  3B                rti
                         .area bss
 9BF1                  _period::
 9BF1                    .blkb 4
 9BF5                  _duty_cycle::
 9BF5                    .blkb 4
 9BF9                  _timertjp::
 9BF9                    .blkb 2
 9BFB                  _days::
 9BFB                    .blkb 2
 9BFD                  _hours::
 9BFD                    .blkb 2
 9BFF                  _minutes::
 9BFF                    .blkb 2
 9C01                  _seconds::
 9C01                    .blkb 2
 9C03                  _msec::
 9C03                    .blkb 2
                         .area text
--- 02CD                 L50:
--- 02CD 000001F4          .word 0,500
--- 02D1                 L47:
--- 02D1 00000001          .word 0,1
--- 02D5                 L43:
--- 02D5 25640A00          .byte 37,'d,10,0
--- 02D9                 L37:
--- 02D9 00000064          .word 0,100
--- 02DD                 L33:
--- 02DD 456E64206F6620496E69742070756C73  .byte 'E,'n,'d,32,'o,'f,32,'I,'n,'i,'t,32,'p,'u,'l,'s
--- 02ED 650A0A00          .byte 'e,10,10,0
--- 02F1                 L31:
--- 02F1 FFFFFFFF          .word 65535,65535
--- 02F5                 L30:
--- 02F5 00000000          .word 0,0
--- 02F9                 L27:
--- 02F9 00000002          .word 0,2
--- 02FD                 L22:
--- 02FD 456E7465722074686520646572697661  .byte 'E,'n,'t,'e,'r,32,'t,'h,'e,32,'d,'e,'r,'i,'v,'a
--- 030D 74697665206761696E0A00    .byte 't,'i,'v,'e,32,'g,'a,'i,'n,10,0
--- 0318                 L21:
--- 0318 456E746572207468652070726F706F72  .byte 'E,'n,'t,'e,'r,32,'t,'h,'e,32,'p,'r,'o,'p,'o,'r
--- 0328 74696F6E616C206761696E0A00    .byte 't,'i,'o,'n,'a,'l,32,'g,'a,'i,'n,10,0
--- 0335                 L20:
--- 0335 504E45554D415449432043594C494E44  .byte 'P,'N,'E,'U,'M,'A,'T,'I,'C,32,'C,'Y,'L,'I,'N,'D
--- 0345 455220444941474E4F53544943205052  .byte 'E,'R,32,'D,'I,'A,'G,'N,'O,'S,'T,'I,'C,32,'P,'R
--- 0355 4F4752414D0A0A00  .byte 'O,'G,'R,'A,'M,10,10,0
--- 035D                 L19:
--- 035D 095469746C653A090976616C76652E63  .byte 9,'T,'i,'t,'l,'e,58,9,9,'v,'a,'l,'v,'e,46,'c
--- 036D 0A0950726F6772616D6D65723A095363  .byte 10,9,'P,'r,'o,'g,'r,'a,'m,'m,'e,'r,58,9,'S,'c
--- 037D 6F7474204E6F72746D616E0A09446174  .byte 'o,'t,'t,32,'N,'o,'r,'t,'m,'a,'n,10,9,'D,'a,'t
--- 038D 653A09094D617263682C20323030300A  .byte 'e,58,9,9,'M,'a,'r,'c,'h,44,32,50,48,48,48,10
--- 039D 0956657273696F6E0909310A0A00  .byte 9,'V,'e,'r,'s,'i,'o,'n,9,9,49,10,10,0
