36 lines
941 B
Plaintext
36 lines
941 B
Plaintext
#include <hopper.h>
|
|
|
|
#proto swapcase(_X_)
|
|
|
|
main:
|
|
|
|
// literal:
|
|
String to process = "alphaBETA", {"String to process: ",String to process}println
|
|
{"UPPER: ",String to process} upper,println
|
|
{"LOWER: ",String to process} lower,println
|
|
{"SWAP CASE: "}
|
|
s="", let( s := _swap case(String to process)),{s}println
|
|
// arrays:
|
|
vArray=0, {5,5} new array(vArray), vArray=String to process
|
|
{"ARRAY UPPER: \n",vArray} upper,println
|
|
{"ARRAY LOWER: \n",vArray} lower,println
|
|
[1:2:end,1:2:end]get(vArray),upper, put(vArray)
|
|
[2:2:end,2:2:end]get(vArray),lower, put(vArray)
|
|
{"INTERVAL ARRAY UPPER/LOWER: \n",vArray},println
|
|
|
|
exit(0)
|
|
|
|
.locals
|
|
swapcase(_X_)
|
|
nLen=0, {_X_}len,mov(nLen)
|
|
__SWAPCASE__:
|
|
if( [nLen:nLen]get(_X_),{"upper"}!typechar? )
|
|
lower
|
|
else
|
|
upper
|
|
end if
|
|
put(_X_)
|
|
--nLen,{nLen}jnz(__SWAPCASE__)
|
|
{_X_} // put processed string into the stack...
|
|
back
|