Subroutine to convert inputted string into lowercase letters

273 Views Asked by At

I am trying to make a subroutine that takes inputs from another subroutine and turn them into lowercase letters.

`






Load StringAddress
Store AddressString
JnS subInputString
JnS subToLower
JnS subPrintString

Halt

StringAddress,  HEX 287 / This is the starting address of the string

////////////////////////////////////////////////////////////////////////
// Task 2.2 - Subroutine for printing strings                           
////////////////////////////////////////////////////////////////////////

subPrintString, HEX 000 / subroutine start
        Load StringAddress
                Store Temp
                
LoopExit, LoadI Temp
          Skipcond 800
          Jump EndOut
          Output
          Load Temp
          Add One
          Store Temp
          Jump LoopExit

EndOut, Load NewLine
    JumpI subPrintString

One, DEC 1
NewLine, HEX 0A

Temp, HEX 0
CurrentCharacterADR, ADR TheName
TheName, HEX 41
         HEX 68
         HEX 6D
         HEX 61
         HEX 64
         HEX 20
         HEX 4D
         HEX 75
         HEX 69
         HEX 7A
         HEX 7A
         HEX 0


////////////////////////////////////////////////////////////////////////
// Task 2.3 - Subroutine for string input                               
////////////////////////////////////////////////////////////////////////

subInputString, HEX 000 / subroutine start
stringIn,       Input
                Skipcond 800
                Jump EndOut2
                StoreI AddressString
                Load AddressString
        Add One2
                Store AddressString
                Jump stringIn
                
EndOut2, Load NewLine2
     JumpI subInputString

NewLine2, HEX 0A
One2, DEC 1
AddressString, HEX 0              
////////////////////////////////////////////////////////////////////////
// Task 2.4 - Subroutine to convert to lower case                       
////////////////////////////////////////////////////////////////////////

subToLower, HEX 000     / subroutine start
toLowerLoop,    Load AddressString
        Add stringIterate
        Store stringIndex
        Clear
                Add stringIndex
                Skipcond 400
                Jump lowerConversion
                JumpI subToLower
                
lowerConversion, Add upperToLower
             Output
                 Load stringIterate
         Add One3
         Store stringIterate
         Jump toLowerLoop           
            
One3, DEC 1
lowerCase, HEX 0
upperToLower, HEX 20
lowerString, HEX 0
stringIndex, HEX 0
stringIterate, DEC 0

For example, if I input in 'GO' in unicode (and then 0 in hexadecimal or decimal to stop the input subroutine), the expected output is 'go' but instead the output is still 'GO'. I don't understand why it's still printing in uppercase?

0

There are 0 best solutions below