                         .module finally2.c
--- 0000                   .dbfile finally2.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:           February 3, 2000                    *
                       ; ************************************************************************************************************************/
                       ; 
                       ; /**************************** Constants *********************************/
                       ; #define pulse_handler TOC2_isr
                       ; #define TOLERANCE 10 
                       ; #define valve_sensor analog(1)
                       ; /**************************** End of Constants **************************/
                       ; 
                       ; /*************************** Interrupts *********************************/
                       ; #pragma interrupt_handler TOC2_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 = 0;
                       ; int gain;
                       ; int desired;
                       ; long count = 0;
                       ;     
                       ; /************************ End of Global Variables ***********************/
                       ; 
                       ; 
 9813                  L2:
 9813  3B                rti
                       ;  IX -> 0,x
 9814                  _SPI_isr::
 9814                    .dbfunc SPI_isr
 9814                    .dbline 47
                       ; /************************** Function Declarations  **********************/
                       ; void init_pulse();      //Initilizes TOC for PWM interrupts
                       ; void pulse_handler();   //This is the function executed at each TOC2_isr
                       ; /******************** End of Function Declarations  *********************/
                       ; 
                       ; 
 9814                  L3:
 9814  3B                rti
                       ;  IX -> 0,x
 9815                  _PAIE_isr::
 9815                    .dbfunc PAIE_isr
 9815                    .dbline 53
                       ; /**************************** Main **************************************/
                       ; 
                       ; void main(void)
                       ; {
                       ;     /* VT100 clear screen */ 
                       ;     char clear[]= "\x1b\x5B\x32\x4A\x04"; 
 9815                  L4:
 9815  3B                rti
                       ;  IX -> 0,x
 9816                  _PAV_isr::
 9816                    .dbfunc PAV_isr
 9816                    .dbline 59
                       ;     
                       ;     /* VT100 position cursor at (x,y) = (3,12) command is "\x1b[3;12H"*/
                       ;     char place[]= "\x1b[1;1H";  /*Home*/
                       ;  
                       ;     SET_BIT(PACTL, 0x80);
                       ;     CLEAR_BIT(PACTL, 0x03); //Set RTI rate
 9816                  L5:
 9816  3B                rti
                       ;  IX -> 0,x
 9817                  _TOF_isr::
 9817                    .dbfunc TOF_isr
 9817                    .dbline 65
                       ;     //SET_BIT(TMSK2, 0x40);//Enable RTI interrupt
                       ;         
                       ;     init_pulse();
                       ;     init_analog();
                       ;     init_serial();
                       ; 
 9817                  L6:
 9817  3B                rti
                       ;  IX -> 0,x
 9818                  _TOC3_isr::
 9818                    .dbfunc TOC3_isr
 9818                    .dbline 89
                       ;     //printf("%s", clear);  
                       ;     //printf("%s", place);
                       ;     
                       ;     printf("\tTitle:\t\tvalve.c\n"
                       ;   "\tProgrammer:\tScott Nortman\n"
                       ;   "\tDate:\t\tFebruary, 2000\n"
                       ;   "\tVersion\t\t1\n\n");
                       ;   
                       ;     printf("PNEUMATIC CYLINDER DIAGNOSTIC PROGRAM\n\n");
                       ;     printf("Enter the desired period in e clocks / 1000:\n");
                       ;     period = (read_int() * 1000);
                       ;     printf("Enter the duty cycle in e clocks / 1000: \n");
                       ;     duty_cycle = (read_int() * 1000);
                       ;     INTR_ON();
                       ;     desired = 150;
                       ;     INTR_OFF();
                       ; 
                       ;     
                       ;     
                       ;     while(1)
                       ;     {
                       ;         SET_BIT(TMSK1, 0x40);//Enable TOC
                       ;         
                       ;         if (desired < valve_sensor){
 9818                  L7:
 9818  3B                rti
                       ;  IX -> 0,x
 9819                  _TIC3_isr::
 9819                    .dbfunc TIC3_isr
 9819                    .dbline 101
                       ;             CLEAR_BIT(PORTA, 0x20);
                       ;         }
                       ;         else if (desired> valve_sensor) {
                       ;             SET_BIT(PORTA, 0x20);
                       ;         }
                       ;         else if ((desired <= valve_sensor + TOLERANCE) && (desired >= valve_sensor - TOLERANCE)){
                       ;             
                       ;             printf("Here\n");
                       ;             CLEAR_BIT(TMSK1, 0x40); //Disable TOC
                       ;         }
                       ;         
                       ;     }/*End While*/
 9819                  L8:
 9819  3B                rti
                       ;  IX -> 0,x
 981A                  _TIC2_isr::
 981A                    .dbfunc TIC2_isr
 981A                    .dbline 107
                       ;     
                       ; }/*End Main*/
                       ; 
                       ; 
                       ; /**************************** End of Main *******************************/
                       ; 
 981A                  L9:
 981A  3B                rti
                       ;  IX -> 0,x
 981B                  _TIC1_isr::
 981B                    .dbfunc TIC1_isr
 981B                    .dbline 113
                       ; 
                       ; 
                       ; /************************** Function Defintions *************************/
                       ; 
                       ; void init_pulse(void)
                       ; {
 981B                  L10:
 981B  3B                rti
                       ;  IX -> 0,x
 981C                  _RTI_isr::
 981C                    .dbfunc RTI_isr
 981C                    .dbline 119
                       ;     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
                       ;     //INTR_ON();
 981C                  L11:
 981C  3B                rti
                       ;  IX -> 0,x
 981D                  _IRQ_isr::
 981D                    .dbfunc IRQ_isr
 981D                    .dbline 125
                       ;     
                       ;     printf("End of Init pulse\n\n");
                       ; }
                       ; 
                       ; void pulse_handler()
                       ; {   printf("ISR");
 981D                  L12:
 981D  3B                rti
                       ;  IX -> 0,x
 981E                  _XIRQ_isr::
 981E                    .dbfunc XIRQ_isr
 981E                    .dbline 131
                       ; 
                       ; 
                       ;     //enable toggle
                       ;     //CLEAR_BIT(TCTL1, 0x80);
                       ;     //SET_BIT(TCTL1, 0x40);
                       ;     if (duty_cycle <= 100)  
 981E                  L13:
 981E  3B                rti
                       ;  IX -> 0,x
 981F                  _SWI_isr::
 981F                    .dbfunc SWI_isr
 981F                    .dbline 137
                       ;     //This handles if duty cycle is less than or equal to 50 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
                       ;     }
 981F                  L14:
 981F  3B                rti
                       ;  IX -> 0,x
 9820                  _ILLOP_isr::
 9820                    .dbfunc ILLOP_isr
 9820                    .dbline 143
                       ;     
                       ;     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);
                       ;         TOC2 += period;         //Add period
 9820                  L15:
 9820  3B                rti
                       ;  IX -> 0,x
 9821                  _COP_isr::
 9821                    .dbfunc COP_isr
 9821                    .dbline 149
                       ;     }
                       ;     
                       ;     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
                       ;         {
 9821                  L16:
 9821  3B                rti
                       ;  IX -> 0,x
 9822                  _CLMON_isr::
 9822                    .dbfunc CLMON_isr
 9822                    .dbline 155
                       ;             CLEAR_BIT(TCTL1, 0x40);  //Clear bit 6 to set for falling edge on next interrupt
                       ;             SET_BIT(TCTL1, 0X80);
                       ;             TOC2 += duty_cycle;     //Add the duty cycle e clocks if you are now high
                       ;         }
                       ;         
                       ;         else //if(!(TCTL1 & 0x40))  //Test bit 6.  If it is low, you are now low and must change to go high
 9822                  L17:
 9822  3B                rti
                         .area data
 9B55                  _drew::
 9B55                    .blkw 1
                         .area idata
--- 0000 0000              .word _interrupt_vectors
                         .area data
 9B57                  _error::
 9B57                    .blkb 2
                         .area idata
--- 0002 0000              .word 0
                         .area data
 9B59                  _count::
 9B59                    .blkb 4
                         .area idata
--- 0004 00000000          .word 0,0
                         .area text
--- 0010                 L19:
--- 0010 1B5B324A0400      .byte 27,91,50,'J,4,0
--- 0016                 L20:
--- 0016 1B5B313B314800    .byte 27,91,49,59,49,'H,0
                       ;  lreg1 -> -4,x
                       ;  lreg2 -> -8,x
                       ;  IX -> 0,x
                       ;  rMEM -> 2,x
                       ;  func temp: 4,x - 12,x
                       ;          place -> 13,x
                       ;          clear -> 20,x
 9830                  _main::
 9830  BD86BA            jsr __enterb
 9833  9A                .byte 0x9a
 9834                    .dbfile finally2.c
 9834                    .dbfunc main
 9834                    .dbline 53
 9834  EC00              ldd 0,x
 9836  C30014            addd #20
 9839  18CE9823          ldy #L19
 983D  3C                pshx
 983E  8F                xgdx
 983F  CC0006            ldd #6
 9842  BD86A2            jsr __asgnblk
 9845  38                pulx
 9846                    .dbline 56
 9846  EC00              ldd 0,x
 9848  C3000D            addd #13
 984B  18CE9829          ldy #L20
 984F  3C                pshx
 9850  8F                xgdx
 9851  CC0007            ldd #7
 9854  BD86A2            jsr __asgnblk
 9857  38                pulx
 9858                    .dbline 58
 9858  18CE1026          ldy #0x1026
 985C  181C0080          bset 0,y,#128
 9860                    .dbline 59
 9860  18CE1026          ldy #0x1026
 9864  181D0003          bclr 0,y,#0x3
 9868                    .dbline 62
 9868  BD993F            jsr _init_pulse
 986B                    .dbline 63
 986B  BD813B            jsr _init_analog
 986E                    .dbline 64
 986E  BD8381            jsr _init_serial
 9871                    .dbline 69
 9871  CC9AFC            ldd #L21
 9874  BD9442            jsr _printf
 9877                    .dbline 74
 9877  CC9AD4            ldd #L22
 987A  BD9442            jsr _printf
 987D                    .dbline 75
 987D  CC9AA6            ldd #L23
 9880  BD9442            jsr _printf
 9883                    .dbline 76
 9883  BD856F            jsr _read_int
 9886  ED04              std 4,x
 9888  CC03E8            ldd #1000
 988B  1AEE04            ldy 4,x
 988E  BD8669            jsr __muli
 9891  BD8987            jsr __d2lreg
 9894  18CE9B78          ldy #_period
 9898  BD8935            jsr __lreg2y
 989B                    .dbline 77
 989B  CC9A7B            ldd #L24
 989E  BD9442            jsr _printf
 98A1                    .dbline 78
 98A1  BD856F            jsr _read_int
 98A4  ED06              std 6,x
 98A6  CC03E8            ldd #1000
 98A9  1AEE06            ldy 6,x
 98AC  BD8669            jsr __muli
 98AF  BD8987            jsr __d2lreg
 98B2  18CE9B7C          ldy #_duty_cycle
 98B6  BD8935            jsr __lreg2y
 98B9  0E                        cli
                       
 98BA                    .dbline 80
 98BA  CC0096            ldd #150
 98BD  FD9B74            std _desired
 98C0  0F                        sei
                       
 98C1                    .dbline 81
 98C1  7E9934            jmp L26
 98C4                  L25:
 98C4                    .dbline 87
 98C4  18CE1022          ldy #0x1022
 98C8  181C0040          bset 0,y,#64
 98CC                    .dbline 89
 98CC  CC0001            ldd #1
 98CF  BD8144            jsr _analog
 98D2  ED08              std 8,x
 98D4  FC9B74            ldd _desired
 98D7  1AA308            cpd 8,x
 98DA  2C0A              bge L28
 98DC                    .dbline 90
 98DC  18CE1000          ldy #0x1000
 98E0  181D0020          bclr 0,y,#0x20
 98E4                    .dbline 91
 98E4  204E              bra L29
 98E6                  L28:
 98E6                    .dbline 92
 98E6  CC0001            ldd #1
 98E9  BD8144            jsr _analog
 98EC  ED0A              std 10,x
 98EE  FC9B74            ldd _desired
 98F1  1AA30A            cpd 10,x
 98F4  2F0A              ble L30
 98F6                    .dbline 93
 98F6  18CE1000          ldy #0x1000
 98FA  181C0020          bset 0,y,#32
 98FE                    .dbline 94
 98FE  2034              bra L31
 9900                  L30:
 9900                    .dbline 95
 9900  CC0001            ldd #1
 9903  BD8144            jsr _analog
 9906  C3000A            addd #10
 9909  ED02              std 2,x
 990B  FC9B74            ldd _desired
 990E  1AA302            cpd 2,x
 9911  2E21              bgt L32
 9913  CC0001            ldd #1
 9916  BD8144            jsr _analog
 9919  83000A            subd #10
 991C  ED02              std 2,x
 991E  FC9B74            ldd _desired
 9921  1AA302            cpd 2,x
 9924  2D0E              blt L32
 9926                    .dbline 97
 9926  CC9A75            ldd #L34
 9929  BD9442            jsr _printf
 992C                    .dbline 98
 992C  18CE1022          ldy #0x1022
 9930  181D0040          bclr 0,y,#0x40
 9934                    .dbline 99
 9934                  L32:
 9934                  L31:
 9934                  L29:
 9934                    .dbline 101
 9934                  L26:
 9934                    .dbline 85
 9934  7E98C4            jmp L25
 9937                  L18:
 9937  8F                xgdx
 9938  C3001A            addd #26
 993B  8F                xgdx
 993C  35                txs
 993D  38                pulx
 993E  39                rts
                       ;  IX -> 0,x
 993F                  _init_pulse::
 993F  0F                        sei
                       
 9940                    .dbfunc init_pulse
 9940                    .dbline 115
 9940  18CE1020          ldy #0x1020
 9944  181C0080          bset 0,y,#128
 9948                    .dbline 116
 9948  18CE1020          ldy #0x1020
 994C  181D0040          bclr 0,y,#0x40
 9950                    .dbline 117
 9950  CC0000            ldd #0
 9953  FD1018            std 0x1018
 9956                    .dbline 118
 9956  18CE1022          ldy #0x1022
 995A  181C0040          bset 0,y,#64
 995E                    .dbline 121
 995E  CC9A61            ldd #L36
 9961  BD9442            jsr _printf
 9964                    .dbline 122
 9964                  L35:
 9964  39                rts
                       ;  lreg1 -> -4,x
                       ;  lreg2 -> -8,x
                       ;  IX -> 0,x
 9965                  _TOC2_isr::
 9965  BD86BA            jsr __enterb
 9968  82                .byte 0x82
 9969                    .dbfunc TOC2_isr
 9969                    .dbline 125
 9969  CC9A5D            ldd #L38
 996C  BD9442            jsr _printf
 996F                    .dbline 131
 996F  18CE9B7C          ldy #_duty_cycle
 9973  BD88F8            jsr __ly2reg
 9976  18CE9A59          ldy #L41
 997A  BD891E            jsr __ly2reg2
 997D  BD8D86            jsr __lcmp
 9980  2E29              bgt L39
 9982                    .dbline 134
 9982  18CE1020          ldy #0x1020
 9986  181C0080          bset 0,y,#128
 998A                    .dbline 135
 998A  18CE1020          ldy #0x1020
 998E  181D0040          bclr 0,y,#0x40
 9992                    .dbline 136
 9992  18CE9B78          ldy #_period
 9996  BD891E            jsr __ly2reg2
                         ; vol
 9999  FC1018            ldd 0x1018
 999C  BD89B9            jsr __ud2lreg
 999F  BD8A84            jsr __ladd
 99A2  BD89DF            jsr __lreg2d
 99A5  FD1018            std 0x1018
 99A8                    .dbline 137
 99A8  7E9A4C            jmp L40
 99AB                  L39:
 99AB                    .dbline 139
 99AB  18CE9B78          ldy #_period
 99AF  BD88F8            jsr __ly2reg
 99B2  18CE9B7C          ldy #_duty_cycle
 99B6  BD891E            jsr __ly2reg2
 99B9  BD8A9F            jsr __lsub
 99BC  18CE9A59          ldy #L41
 99C0  BD891E            jsr __ly2reg2
 99C3  BD8D86            jsr __lcmp
 99C6  2E28              bgt L42
 99C8                    .dbline 141
 99C8  18CE1020          ldy #0x1020
 99CC  181D0080          bclr 0,y,#0x80
 99D0                    .dbline 142
 99D0  18CE1020          ldy #0x1020
 99D4  181C0040          bset 0,y,#64
 99D8                    .dbline 143
 99D8  18CE9B78          ldy #_period
 99DC  BD891E            jsr __ly2reg2
                         ; vol
 99DF  FC1018            ldd 0x1018
 99E2  BD89B9            jsr __ud2lreg
 99E5  BD8A84            jsr __ladd
 99E8  BD89DF            jsr __lreg2d
 99EB  FD1018            std 0x1018
 99EE                    .dbline 144
 99EE  205C              bra L43
 99F0                  L42:
 99F0                    .dbline 148
 99F0  18CE1020          ldy #0x1020
 99F4  181F004028        brclr 0,y,#64,L44
 99F9                    .dbline 150
 99F9  18CE1020          ldy #0x1020
 99FD  181D0040          bclr 0,y,#0x40
 9A01                    .dbline 151
 9A01  18CE1020          ldy #0x1020
 9A05  181C0080          bset 0,y,#128
 9A09                    .dbline 152
 9A09  18CE9B7C          ldy #_duty_cycle
 9A0D  BD891E            jsr __ly2reg2
                         ; vol
 9A10  FC1018            ldd 0x1018
 9A13  BD89B9            jsr __ud2lreg
 9A16  BD8A84            jsr __ladd
 9A19  BD89DF            jsr __lreg2d
 9A1C  FD1018            std 0x1018
 9A1F                    .dbline 153
 9A1F  202B              bra L45
 9A21                  L44:
 9A21                    .dbline 157
                       ;         {
                       ;             SET_BIT(TCTL1, 0xC0);   //Set bit 6 to go high next interrupt
 9A21  18CE1020          ldy #0x1020
 9A25  181C00C0          bset 0,y,#192
 9A29                    .dbline 158
                       ;             TOC2 += (period - duty_cycle);
 9A29  18CE9B78          ldy #_period
 9A2D  BD88F8            jsr __ly2reg
 9A30  18CE9B7C          ldy #_duty_cycle
 9A34  BD891E            jsr __ly2reg2
 9A37  BD8A9F            jsr __lsub
 9A3A  BD8972            jsr __lregmov
                         ; vol
 9A3D  FC1018            ldd 0x1018
 9A40  BD89B9            jsr __ud2lreg
 9A43  BD8A84            jsr __ladd
 9A46  BD89DF            jsr __lreg2d
 9A49  FD1018            std 0x1018
 9A4C                    .dbline 159
                       ;         }
 9A4C                  L45:
 9A4C                    .dbline 160
                       ;     }
 9A4C                  L43:
 9A4C                  L40:
 9A4C                    .dbline 163
                       ;     
                       ;     
                       ;     CLEAR_FLAG(TFLG1, 0x40) //Clear the interrupt flag
 9A4C  18CE1023          ldy #0x1023
 9A50  181D00BF          bclr 0,y,#0xbf
 9A54                    .dbline 164
                       ; }   //This is the end of the interrupt routine
 9A54                  L37:
 9A54  08                inx
 9A55  08                inx
 9A56  35                txs
 9A57  38                pulx
 9A58  3B                rti
                         .area bss
 9B74                  _desired::
 9B74                    .blkb 2
 9B76                  _gain::
 9B76                    .blkb 2
 9B78                  _period::
 9B78                    .blkb 4
 9B7C                  _duty_cycle::
 9B7C                    .blkb 4
 9B80                  _timertjp::
 9B80                    .blkb 2
 9B82                  _days::
 9B82                    .blkb 2
 9B84                  _hours::
 9B84                    .blkb 2
 9B86                  _minutes::
 9B86                    .blkb 2
 9B88                  _seconds::
 9B88                    .blkb 2
 9B8A                  _msec::
 9B8A                    .blkb 2
                         .area text
--- 0246                 L41:
--- 0246 00000064          .word 0,100
--- 024A                 L38:
--- 024A 49535200          .byte 'I,'S,'R,0
--- 024E                 L36:
--- 024E 456E64206F6620496E69742070756C73  .byte 'E,'n,'d,32,'o,'f,32,'I,'n,'i,'t,32,'p,'u,'l,'s
--- 025E 650A0A00          .byte 'e,10,10,0
--- 0262                 L34:
--- 0262 486572650A00      .byte 'H,'e,'r,'e,10,0
--- 0268                 L24:
--- 0268 456E7465722074686520647574792063  .byte 'E,'n,'t,'e,'r,32,'t,'h,'e,32,'d,'u,'t,'y,32,'c
--- 0278 79636C6520696E206520636C6F636B73  .byte 'y,'c,'l,'e,32,'i,'n,32,'e,32,'c,'l,'o,'c,'k,'s
--- 0288 202F20313030303A200A00    .byte 32,47,32,49,48,48,48,58,32,10,0
--- 0293                 L23:
--- 0293 456E7465722074686520646573697265  .byte 'E,'n,'t,'e,'r,32,'t,'h,'e,32,'d,'e,'s,'i,'r,'e
--- 02A3 6420706572696F6420696E206520636C  .byte 'd,32,'p,'e,'r,'i,'o,'d,32,'i,'n,32,'e,32,'c,'l
--- 02B3 6F636B73202F20313030303A0A00  .byte 'o,'c,'k,'s,32,47,32,49,48,48,48,58,10,0
--- 02C1                 L22:
--- 02C1 504E45554D415449432043594C494E44  .byte 'P,'N,'E,'U,'M,'A,'T,'I,'C,32,'C,'Y,'L,'I,'N,'D
--- 02D1 455220444941474E4F53544943205052  .byte 'E,'R,32,'D,'I,'A,'G,'N,'O,'S,'T,'I,'C,32,'P,'R
--- 02E1 4F4752414D0A0A00  .byte 'O,'G,'R,'A,'M,10,10,0
--- 02E9                 L21:
--- 02E9 095469746C653A090976616C76652E63  .byte 9,'T,'i,'t,'l,'e,58,9,9,'v,'a,'l,'v,'e,46,'c
--- 02F9 0A0950726F6772616D6D65723A095363  .byte 10,9,'P,'r,'o,'g,'r,'a,'m,'m,'e,'r,58,9,'S,'c
--- 0309 6F7474204E6F72746D616E0A09446174  .byte 'o,'t,'t,32,'N,'o,'r,'t,'m,'a,'n,10,9,'D,'a,'t
--- 0319 653A090946656272756172792C203230  .byte 'e,58,9,9,'F,'e,'b,'r,'u,'a,'r,'y,44,32,50,48
--- 0329 30300A0956657273696F6E0909310A0A  .byte 48,48,10,9,'V,'e,'r,'s,'i,'o,'n,9,9,49,10,10
--- 0339 00                .byte 0
