#include #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