Advertisement
Guest User

Untitled

a guest
Jun 4th, 2017
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
ARM 15.24 KB | None | 0 0
  1. .section    .init
  2. .globl      _start
  3.  
  4. _start:
  5.  
  6.     b       main
  7.  
  8. .section    .text
  9.  
  10. main:
  11.  
  12.     mov     sp, #0x8000                     // SP
  13.     bl      EnableJTAG                      // JTAG
  14.     bl      InitUART                          // UART
  15.  
  16.  
  17.     ldr     r0, =creator                    // Chris, Jas, Alvin
  18.     mov     r1, #54                           // Allocates bytes
  19.     bl      WriteStringUART               // Call print
  20.  
  21.  
  22. parkingPrompt:
  23.  
  24.     mov r4, #0
  25.     mov r9, #0
  26.     mov r10, #0
  27.     mov r11, #0
  28.     mov r3, #0
  29.  
  30.     ldr     r0, =prompt                    // Asks user for hours
  31.     mov     r1, #96                          // Allocates bytes
  32.     bl      WriteStringUART              // Call Print
  33.  
  34.     ldr     r0, =userInput             // Buffer for user input
  35.     mov     r1, #256
  36.     bl      ReadLineUART                   // Input in r0
  37.  
  38.  
  39.     // Compare bits //
  40.  
  41.     cmp     r0, #1                           // Checks if user input == 1 byte
  42.     blt     printInputError              // Input < 1
  43.     beq     firstDigit                     // Go to first digit
  44.  
  45.     cmp     r0, #2                           // Checks if user input == 2 bytes
  46.     beq     secondDigit                    // Go to second digit
  47.  
  48.     cmp     r0, #3                         // Checks if user input == 3 bytes
  49.     beq     thirdDigit                     // Go to third digit
  50.  
  51.     cmp     r0, #4                           // Checks if user input == 4 bytes
  52.     beq     fourthDigit                    // Go to fourth digit
  53.  
  54.     cmp     r0, #5                           // Checks if user input == 5 bytes
  55.     bge     printBoundError              // Out of bound error
  56.  
  57.  
  58.  
  59. printInputError:
  60.  
  61.     ldr     r0, =inputError              // Error message for invalid characters
  62.     mov     r1, #77                          // Allocates bytes
  63.     bl      WriteStringUART              // Prints
  64.  
  65.   b parkingPrompt
  66.  
  67.  
  68.  
  69. printBoundError:
  70.  
  71.     ldr     r0, =boundError              // Error message for out of bound integers
  72.     mov     r1, #51                          // Allocates bytes
  73.     bl      WriteStringUART              // Prints
  74.  
  75.   b parkingPrompt
  76.  
  77.  
  78.  
  79. firstDigit:
  80.  
  81.   ldr r0, =userInput              // Address of Buffer
  82.   ldrb r1, [r0]                     // Loading the first character
  83.  
  84.   cmp r1, #81                   // Compares the one digit to ASCII value for q
  85.   beq ExitProgram
  86.  
  87.   cmp r1, #113                  // Compares the one digit to ASCII value for Q
  88.   beq ExitProgram
  89.  
  90.   cmp r1, #49                   // Compares r1 to 1
  91.   blt printInputError
  92.  
  93.   cmp r1, #57                  // Compares r1 to 9
  94.   bgt printInputError
  95.  
  96.   b storeOneNumber
  97.  
  98.  
  99.  
  100. secondDigit:
  101.  
  102.     ldr r0, =userInput
  103.     ldrb r1, [r0, #0]
  104.  
  105.     cmp r1, #45
  106.     beq checkNextDigit
  107.  
  108.     ldr r0, =userInput                  // Address of the buffer
  109.     ldrb r1, [r0, #1]                       // Loading the second character onto r1
  110.  
  111.     cmp r1, #57                                 // Comparing to see if the second digit is a ascii character greater than 9
  112.     bgt printInputError                 // Branch to an error message because this shows the byte was a non-number character
  113.  
  114.     cmp r1, #48                                 // Comparing to see if the second digit is a ascii character less than 0
  115.     blt printInputError                 // Branch to error message
  116.  
  117.     ldr r0, =userInput                  // Address of Buffer
  118.     ldrb r1, [r0, #0]                       // Loading the first character onto r1
  119.  
  120.     cmp r1, #48                                 // Compare to see if the input is a number and not other characters
  121.     blt printInputError
  122.  
  123.     cmp r1, #50                                 // Checking if the first character is greater than 2
  124.     bgt printInputError                 // Branch to error if it is greater than 2
  125.     beq twoDigitCheck                       // Branch to check if its less than 24
  126.  
  127.     b storeTwoNumber
  128.  
  129.  
  130. twoDigitCheck:
  131.  
  132.     ldr r0, =userInput
  133.     ldrb r1, [r0, #1]
  134.  
  135.     cmp r1, #52
  136.     bgt printInputError
  137.     b storeTwoNumber
  138.  
  139.  
  140. thirdDigit:
  141.     ldr r0, =userInput
  142.     ldrb r1, [r0, #1]
  143.  
  144.     cmp r1, #46
  145.     bne printInputError
  146.  
  147.     ldr r0, =userInput
  148.     ldrb r1, [r0, #0]
  149.  
  150.     cmp r1, #49                     // Compares r1 to 1
  151.   blt printInputError
  152.  
  153.   cmp r1, #57                  // Compares r1 to 9
  154.   bgt printInputError
  155.  
  156.     ldr r0, =userInput
  157.     ldrb r1, [r0, #3]
  158.  
  159.     cmp r1, #57
  160.     beq incrementTwoDigit
  161.  
  162.     cmp r1, #48
  163.     beq storeOneNumber
  164.  
  165.     b increment
  166.  
  167.  
  168.  
  169. fourthDigit:
  170.     ldr r0, =userInput
  171.     ldrb r1, [r0, #2]
  172.  
  173.     cmp r1, #46
  174.     bne printInputError
  175.  
  176.  
  177.     ldr r0, =userInput
  178.     ldrb r1, [r0, #1]
  179.  
  180.     cmp r1, #48                     // Compares r1 to 0
  181.     blt printInputError
  182.  
  183.     cmp r1, #57                     // Compares r1 to 9
  184.     bgt printInputError
  185.  
  186.  
  187.     ldr r0, =userInput
  188.     ldrb r1, [r0, #0]
  189.  
  190.     cmp r1, #49                     // Compares r1 to 1
  191.     blt printInputError
  192.  
  193.     cmp r1, #50                     // Compares r1 to 9
  194.     bgt printInputError
  195.     beq fourByteCheck
  196.  
  197.     ldr r0, =userInput
  198.     ldrb r1, [r0, #3]
  199.  
  200.     cmp r1, #48
  201.     beq storeTwoNumber
  202.     bgt incrementFourByte
  203.  
  204.  
  205. fourByteCheck:
  206.     ldr r0, =userInput
  207.     ldrb r1, [r0, #1]
  208.  
  209.     cmp r1, #52
  210.     bgt printInputError
  211.  
  212.  
  213.     ldr r0, =userInput
  214.     ldrb r1, [r0, #3]
  215.  
  216.     cmp r1, #48
  217.     beq storeTwoNumber
  218.     bgt incrementFourByte
  219.  
  220.  
  221. incrementFourByte:
  222.     ldr r0, =userInput
  223.     ldrb r1, [r0, #1]
  224.  
  225.     cmp r1, #57
  226.     beq doubleIncrement
  227.  
  228.     ldr r0, =userInput           // Loading Buffer
  229.     ldrb  r10, [r0, #1]           // Loading the byte onto r1
  230.  
  231.     sub r10, r10, #47              // Subtracting 47 to convert from ASCII to int that is being incremented
  232.  
  233.     ldr r0, =userInput        // Loading the integer buffer
  234.     ldrb r4, [r0, #0]            // Storing the integer byte onto r4
  235.  
  236.     sub r4, r4, #48
  237.  
  238.     b timesTen
  239.  
  240.  
  241. doubleIncrement:
  242.     mov r4, #20
  243.  
  244.     b calcTwoDigit
  245.  
  246.  
  247. increment:
  248.     ldr r0, =userInput           // Loading Buffer
  249.     ldrb  r1, [r0, #0]           // Loading the byte onto r1
  250.     ldr r0, =rawIntBuffer        // Loading the integer buffer
  251.     sub r1, r1, #47              // Subtracting 48 to convert from ASCII to int
  252.     strb r1, [r0, #0]            // Storing the integer byte onto r1
  253.  
  254.     b calcOneDigit
  255.  
  256. incrementTwoDigit:
  257.     mov r4, #10
  258.  
  259.     b calcTwoDigit
  260.  
  261. checkNextDigit:
  262.  
  263.     mov r4, #0
  264.  
  265.     ldr r0, =userInput
  266.     ldrb r1, [r0, #1]
  267.  
  268.     cmp r1, #49
  269.     beq people
  270.  
  271.     ldr r0, =userInput                  // Address of the buffer
  272.     ldrb r1, [r0, #1]                       // Loading the second character onto r1
  273.  
  274.     cmp r1, #57                                 // Comparing to see if the second digit is a ascii character greater than 9
  275.     bgt printInputError                 // Branch to an error message because this shows the byte was a non-number character
  276.  
  277.     cmp r1, #48                                 // Comparing to see if the second digit is a ascii character less than 0
  278.     blt printInputError                 // Branch to error message
  279.  
  280.     ldr r0, =userInput                  // Address of Buffer
  281.     ldrb r1, [r0, #0]                       // Loading the first character onto r1
  282.  
  283.     cmp r1, #48                                 // Compare to see if the input is a number and not other characters
  284.     blt printInputError
  285.  
  286.     cmp r1, #50                                 // Checking if the first character is greater than 2
  287.     bgt printInputError                 // Branch to error if it is greater than 2
  288.     beq twoDigitCheck                       // Branch to check if its less than 24
  289.  
  290.     b storeTwoNumber
  291.  
  292.  
  293.  
  294. storeOneNumber:
  295.  
  296.   ldr r0, =userInput           // Loading Buffer
  297.   ldrb  r1, [r0, #0]           // Loading the byte onto r1
  298.   ldr r0, =rawIntBuffer        // Loading the integer buffer
  299.   sub r1, r1, #48              // Subtracting 48 to convert from ASCII to int
  300.   strb r1, [r0, #0]            // Storing the integer byte onto r1
  301.  
  302.   b calcOneDigit
  303.  
  304.  
  305. storeTwoNumber:
  306.  
  307.     ldr r0, =userInput
  308.     ldrb r4, [r0, #0]
  309.  
  310.     sub r4, r4, #48
  311.  
  312.     ldr r0, =userInput
  313.     ldrb r10, [r0, #1]
  314.  
  315.     sub r10, r10, #48
  316.  
  317.     b timesTen
  318.  
  319.  
  320. calcOneDigit:
  321.  
  322.   ldr r0, =rawIntBuffer        // Loading the int onto the r0
  323.   ldrb r4, [r0, #0]            // Loading the first byte
  324.  
  325.   cmp r4, r5                   // Comparing if my value is lower than the current min
  326.   blt setMin
  327.  
  328.   cmp r4, r6                   // Comparing if my value is higher than the current max
  329.   bgt setMax
  330.  
  331.   b continue
  332.  
  333.  
  334. calcTwoDigit:
  335.  
  336.     cmp r4, r5                   // Comparing if my value is lower than the current min
  337.     blt setMin
  338.  
  339.     cmp r4, r6                   // Comparing if my value is higher than the current max
  340.     bgt setMax
  341.  
  342.     b continue
  343.  
  344. continue:
  345.     add r12, r12, r4
  346.  
  347.   cmp r4, #2                  // Comparing to see if it less than or equal to two
  348.   ble twoHourParking
  349.  
  350.   cmp r4, #20                 // Comparing to see if it is more than the max parking amount
  351.   bgt maxParking
  352.  
  353.  
  354.   sub r3, r4, #2                  // Subtracting 2 from the total number of hours parked to calculate price
  355.  
  356.   mov r4, #0                  // Setting the incremental counter back to 0
  357.     mov r9, #0
  358.  
  359.   b calcAfterDecSet
  360.  
  361.  
  362. calcBefore:
  363.     add r4, r4, #1                          // Incrementing the counter
  364.     add r11, r11, #1                        // Adding 1 to the before the decimal value each iteration
  365.  
  366.     b calcBeforeDecSet
  367.  
  368.  
  369.  
  370. calcAfter:
  371.     add r4, r4, #1                          // Incrementing the counter
  372.     add r9, r9, #5                          // Adding 5 to r9 each iteration
  373.  
  374.     b calcAfterDecSet
  375.  
  376.  
  377.  
  378. calcAfterDecSet:
  379.     cmp r3, r4                                  // Comparing the number of hours - 2 and the counter
  380.     bgt calcAfter
  381.  
  382.     mov r4, #0                                  // Resetting the counter to 0
  383.  
  384.     cmp r9, #5                                  // Checking to see if r9 is not equal to 5
  385.     bne split
  386.  
  387.     b calcBeforeDecSet
  388.  
  389.  
  390. calcBeforeDecSet:
  391.   cmp r3, r4                                    // Comparing the number of hours - 2 and the counter
  392.     bgt calcBefore
  393.  
  394.     mov r4, #0                                  // Resetting the counter to 0
  395.  
  396.     add r11, r11, #5                            // Adding $5 for the first two hours of parking
  397.  
  398.     mov r10, #0
  399.     cmp r11, #9                                 // Comparing r11 and 9
  400.     bgt splitBeforeDigit
  401.  
  402.     b   printPrice
  403.  
  404.  
  405. setMin:
  406.   mov r5, r4                 // Setting the min register to the current min
  407.  
  408.     cmp r4, r6
  409.     bgt setMax
  410.  
  411.     b continue
  412.  
  413. setMax:
  414.   mov r6, r4                 // Setting the max register to the current max
  415.   b continue
  416.  
  417. maxParking:
  418.   add r8, r8, r1                        // Incrementing the total amount of money made
  419.   add r7, r7, #1                        // Incrementing the total number of people
  420.  
  421.     ldr r0, =dollar
  422.     mov r1, #1
  423.     bl WriteStringUART
  424.  
  425.     mov r4, #51
  426.     ldr r0, =printValue
  427.     strb r4, [r0]
  428.     ldr r0, =printValue
  429.     mov r1, #1
  430.     bl WriteStringUART
  431.  
  432.     mov r4, #51
  433.     ldr r0, =printValue
  434.     strb r4, [r0]
  435.     ldr r0, =printValue
  436.     mov r1, #1
  437.     bl WriteStringUART
  438.  
  439.     b parkingPrompt
  440.  
  441.  
  442.  
  443. twoHourParking:
  444.  
  445.   ldr r0, =rawIntBuffer
  446.   mov r1, #5
  447.  
  448.   add r8, r8, r1          // Incrementing the total amount spend counter
  449.  
  450.   add r1, r1, #48
  451.   strb r1, [r0]
  452.   mov r1, #33
  453.   strb r1, [r0, #1]
  454.  
  455.   b printOneD
  456.  
  457. splitPeople:
  458.     sub r7, r7, #10
  459.     add r4, r4, #1
  460.  
  461. people:
  462.     cmp r7, #9
  463.     bgt splitPeople
  464.  
  465.     ldr r0, =customers
  466.     mov r1, #29
  467.     bl WriteStringUART
  468.  
  469.  
  470.     add r4, r4, #48
  471.     ldr r0, =printValue
  472.     strb r4, [r0, #0]
  473.     ldr r0, =printValue
  474.     mov r1, #1
  475.     bl WriteStringUART
  476.  
  477.     sub r4, r4, #48
  478.  
  479.     add r7, r7, #48
  480.     ldr r0, =printValue
  481.     strb r7, [r0, #0]
  482.     ldr r0, =printValue
  483.     mov r1, #1
  484.     bl WriteStringUART
  485.  
  486.     sub r7, r7, #48
  487.  
  488.     b resetPeople
  489.  
  490. resetPeople:
  491.     mov r2, #0
  492.     add r2, r4, r4
  493.     add r2, r2, r2
  494.     add r2, r2, r2
  495.     add r2, r2, r4
  496.     add r4, r2, r4
  497.     mov r2, #0
  498.  
  499.     add r7, r7, r4
  500.     mov r4, #0
  501.  
  502.     b setCharged
  503.  
  504.  
  505. splitCharged:
  506.     sub r8, r8, #10
  507.     add r4, r4, #1
  508.  
  509. chargedPrint:
  510.  
  511.     cmp r8, #9
  512.     bgt splitCharged
  513.  
  514.     ldr r0, =charged
  515.     mov r1, #38
  516.     bl WriteStringUART
  517.  
  518.     ldr r0, =dollar
  519.     mov r1, #1
  520.     bl WriteStringUART
  521.  
  522.  
  523.     add r4, r4, #48
  524.     ldr r0, =printValue
  525.     strb r4, [r0, #0]
  526.     ldr r0, =printValue
  527.     mov r1, #1
  528.     bl WriteStringUART
  529.  
  530.     mov r4, #0
  531.  
  532.     add r8, r8, #48
  533.     ldr r0, =printValue
  534.     strb r8, [r0, #0]
  535.     ldr r0, =printValue
  536.     mov r1, #1
  537.     bl WriteStringUART
  538.  
  539.     sub r8, r8, #48
  540.  
  541.     ldr r0, =decimal
  542.     mov r1, #1
  543.     bl WriteStringUART
  544.  
  545.     b printMinimum
  546.  
  547.  
  548. splitMin:
  549.     sub r5, r5, #10
  550.     add r4, r4, #1
  551.  
  552.  
  553. printMinimum:
  554.     cmp r5, #9
  555.     bgt splitMin
  556.  
  557.     ldr r0, =minPrint
  558.     mov r1, #28
  559.     bl WriteStringUART
  560.  
  561.  
  562.     add r4, r4, #48
  563.     ldr r0, =printValue
  564.     strb r4, [r0, #0]
  565.     ldr r0, =printValue
  566.     mov r1, #1
  567.     bl WriteStringUART
  568.  
  569.     sub r4, r4, #48
  570.  
  571.     add r5, r5, #48
  572.     ldr r0, =printValue
  573.     strb r5, [r0, #0]
  574.     ldr r0, =printValue
  575.     mov r1, #1
  576.     bl WriteStringUART
  577.  
  578.     sub r5, r5, #48
  579.  
  580.     b resetMin
  581.  
  582. resetMin:
  583.     mov r2, #0
  584.     add r2, r4, r4
  585.     add r2, r2, r2
  586.     add r2, r2, r2
  587.     add r2, r2, r4
  588.     add r4, r2, r4
  589.     mov r2, #0
  590.  
  591.     add r5, r5, r4
  592.  
  593.     mov r4, #0
  594.  
  595.     b printMaximum
  596.  
  597.  
  598. splitMax:
  599.     sub r6, r6, #10
  600.     add r4, r4, #1
  601.  
  602.  
  603. printMaximum:
  604.     cmp r6, #9
  605.     bgt splitMax
  606.  
  607.     ldr r0, =maxPrint
  608.     mov r1, #28
  609.     bl WriteStringUART
  610.  
  611.  
  612.     add r4, r4, #48
  613.     ldr r0, =printValue
  614.     strb r4, [r0, #0]
  615.     ldr r0, =printValue
  616.     mov r1, #1
  617.     bl WriteStringUART\
  618.  
  619.     sub r4, r4, #48
  620.  
  621.     add r6, r6, #48
  622.     ldr r0, =printValue
  623.     strb r6, [r0, #0]
  624.     ldr r0, =printValue
  625.     mov r1, #1
  626.     bl WriteStringUART
  627.  
  628.     sub r6, r6, #48
  629.  
  630.     b resetMax
  631.  
  632. resetMax:
  633.     mov r2, #0
  634.     add r2, r4, r4
  635.     add r2, r2, r2
  636.     add r2, r2, r2
  637.     add r2, r2, r4
  638.     add r4, r2, r4
  639.     mov r2, #0
  640.  
  641.     add r6, r6, r4
  642.     mov r4, #0
  643.  
  644.     b setAverage
  645.  
  646. setAverage:
  647.  
  648.     ldr r0, =averagePrint
  649.     mov r1, #28
  650.     bl WriteStringUART
  651.  
  652.     udiv r2, r12, r7
  653.  
  654.     cmp r2, #9
  655.     bgt splitSetAverage
  656.  
  657.     b printAverage
  658.  
  659. splitAverage:
  660.     sub r2, r2, #10
  661.     add r4, r4, #1
  662.  
  663.  
  664. splitSetAverage:
  665.     cmp r2, #9
  666.     bgt splitAverage
  667.  
  668.     b printAverage
  669.  
  670. printAverage:
  671.  
  672.     add r4, r4, #48
  673.     ldr r0, =printValue
  674.     strb r4, [r0, #0]
  675.     ldr r0, =printValue
  676.     mov r1, #1
  677.     bl WriteStringUART
  678.  
  679.     add r2, r2, #48
  680.     ldr r0, =printValue
  681.     strb r2, [r0, #0]
  682.     ldr r0, =printValue
  683.     mov r1, #1
  684.     bl WriteStringUART
  685.  
  686.     mov r2, #0
  687.     mov r4, #0
  688.  
  689. timesTen:
  690.     mov r2, #0
  691.     add r2, r4, r4
  692.     add r2, r2, r2
  693.     add r2, r2, r2
  694.     add r2, r2, r4
  695.     add r4, r2, r4
  696.     mov r2, #0
  697.  
  698.     add r4, r4, r10
  699.  
  700.  
  701.     ldr r0, =rawIntBuffer
  702.     str r4, [r0]
  703.  
  704.     b calcTwoDigit
  705.  
  706. split:
  707.  
  708.     cmp r9, #10
  709.     bge subTen
  710.  
  711.     b calcBeforeDecSet
  712.  
  713. subTen:
  714.     sub r9, r9, #10
  715.     add r11, r11, #1
  716.     b   split
  717.  
  718. splitBefore:
  719.     sub r11, r11, #10
  720.     add r10, r10, #1
  721.     b   splitBeforeDigit
  722.  
  723.  
  724. splitBeforeDigit:
  725.     cmp r11, #10
  726.     bge splitBefore
  727.  
  728.     b printPrice
  729.  
  730.  
  731.  
  732. printPrice:
  733.  
  734.     ldr r0, =dollar
  735.     mov r1, #1
  736.     bl WriteStringUART
  737.  
  738.  
  739.     add r10, r10, #48
  740.     ldr r0, =printValue
  741.     strb r10, [r0, #0]
  742.     ldr r0, =printValue
  743.     mov r1, #1
  744.     bl WriteStringUART
  745.  
  746.     add r11, r11, #48
  747.     ldr r0, =printValue
  748.     strb r11, [r0, #0]
  749.     ldr r0, =printValue
  750.     mov r1, #1
  751.     bl WriteStringUART
  752.  
  753.     ldr r0, =decimal
  754.     mov r1, #1
  755.     bl WriteStringUART
  756.  
  757.     add r9, r9, #48
  758.     ldr r0, =printValue
  759.     strb r9, [r0, #0]
  760.     ldr r0, =printValue
  761.     mov r1, #1
  762.     bl WriteStringUART
  763.  
  764.     add r7, r7, #1
  765.  
  766.     mov r10, #0
  767.     mov r9, #0
  768.     mov r11, #0
  769.  
  770.  
  771. printOneD:
  772.  
  773.   ldr r0, =dollar
  774.   mov r1, #1
  775.   bl WriteStringUART
  776.  
  777.   ldr r0, =rawIntBuffer
  778.   mov r1, #1
  779.   bl WriteStringUART
  780.  
  781.   add r7, r7, #1
  782.   b parkingPrompt
  783.  
  784.  
  785. .section    .data
  786.  
  787. haltLoop$:
  788.     b       haltLoop$                   // End
  789.  
  790.  
  791. ExitProgram:
  792.  
  793.   ldr r0, =Terminate
  794.   mov r1, #18
  795.   bl  WriteStringUART
  796.  
  797.  
  798. // Buffers //
  799.  
  800.  
  801. rawIntBuffer:
  802.   .rept 256
  803.   .byte 0
  804.   .endr
  805.  
  806.  
  807. buffer:
  808.   .rept 256
  809.   .byte 0
  810.   .endr
  811.  
  812.  
  813.  
  814. userInput:
  815.  
  816.     .rept   256
  817.     .byte   0
  818.     .endr
  819.  
  820. printValue:
  821.     .byte 0
  822.  
  823. // Strings //
  824.  
  825. customers:
  826.     .ascii "\n\rTotal number of customers: "       // 29 Characters
  827.  
  828. charged:
  829.     .ascii "\n\rTotal amount charged for customers: "       // 38 Characters
  830.  
  831. minPrint:
  832.     .ascii "\n\rMinimum number of hours: "       // 28 Characters
  833.  
  834. maxPrint:
  835.     .ascii "\n\rMaximum number of hours: "       // 28 Characters
  836.  
  837. averagePrint:
  838.     .ascii "\n\rAverage number of hours: "       // 28 Characters
  839.  
  840.  
  841. decimal:
  842.     .ascii "."      // 1 Characters
  843.  
  844. dollar:
  845.   .ascii "$"     // 1 Characters
  846.  
  847. Terminate:
  848.   .ascii  "\n\rQuitting Program"    // 18 Characters
  849.  
  850. prompt:
  851.     .ascii  "\n\rPlease enter the number of parking hours for the customer. Press -1 for Summary or q to exit\n\r"              // 96 Characters
  852.  
  853. creator:
  854.     .ascii "\n\rCreated by: Chris Chau, Jaskaran Sidhu, Alvin Cheung"                                                       // 54 Characters
  855.  
  856. inputError:
  857.     .ascii "\n\rInvalid Number! The number should be between 1 and 24 or -1 for the summary"                                // 77 Characters
  858.  
  859. boundError:
  860.     .ascii "\n\rNumber can only be between 1-24 or -1 for summary"                                                          // 51 Characters
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement