I seemed to have found a work-around.....I made a "dummy" object and had the camera track that object position. As I rotated the terrain view, I rotated the object in kind so I was able to achieve what I needed.
Whew-
Here's the new code for anyone who cares

Just a few more tweaks and I'll have my ideal camera controls for my project-
set display mode desktop width(), desktop height(), 32
set window off
autocam off
backdrop on
color backdrop rgb(90,90,255)
set ambient light 5
set camera range .1, 5000
load image "terrain_c_map.bmp", 1
Dim TransitConnector(25000) as TransitConnector
type TransitConnector
XPos as integer
YPos as integer
ZPos as integer
ConnectorID as integer
ConnectorType as integer
ConnectorExist as integer
AttachPoint1 as integer
AttachPoint2 as integer
AttachPoint3 as integer
AttachPoint4 as integer
endtype
Dim TransitLink(25000) as TransitLink
type TransitLink
LinkID as integer
ConnectorAttachA as integer
ConnectorAttachB as integer
LinkTransitType as integer
LinkExist as integer
AXPos as integer
AYPos as integer
AZPos as integer
BXPos as integer
BYPos as integer
BZPos as integer
endtype
global XAng as float
global LowestTerrainSpot as integer
global TerrainHeightAverage as float
global YAng as float
global CameraDist as float
global mx as float
global my as float
global xpos as float
global ypos as float
global zpos as float
global mmx as float
global mmy as float
global mmz as float
global mmzr as float
mmzr = .025
global smmx as float
global smmy as float
global rmmx as float
global rmmy as float
global dXAng as float
global dYAng as float
global CullState = 1
global num_objects = 20
global lmb
global CameraTickRate = 0
global tag_state = 0
global tempmousex as float
global tempmousey as float
global tempmousez as float
global xposdiff as float
global yposdiff as float
global zposdiff as float
global OriginalZPos
global tmx as float
global tmy as float
global num_objects=50
dXAng = 0
global camposx as float
global camposy as float
global camposz as float
TransitConnector(1).ConnectorID = 5
make object terrain 1
set terrain heightmap 1, "terrain_h_map.bmp"
` split value by 16 * 16
`set terrain split 1, 4
` detail map tiling
set terrain tiling 1, 2
` light - xdir, ydir, zdir, red, green, blue, intensity
set terrain light 1, 1, -0.25, 0, 1, 1, 0.78, 0.5
set terrain scale 1, 1, .5, 1
` base and detail texture
set terrain texture 1, 1, 3
` finally build the terrain
build terrain 1
position object 1, 0, 0, 0
make object sphere 2, 5, 8, 16
position object 2, 0, 0, 0
disable object zdepth 2
YAng = 90
CameraDist=-450
position camera 0, 0, 0, -50
point camera 0, 0, 0, -1
Move Camera 0, CameraDist
ControlCamera()
`----------------------------------------Begin Main Loop--------------------------------
while escapekey()=0
ControlCamera()
text 0, 0, "camera position x(0) "+ str$(camera position x(0))
text 0, 10, "XAng "+ str$(XAng)
text 0, 20, "YAng "+ str$(YAng)
text 0, 30, "xang "+ str$(xang)
text 0, 40, "yang "+ str$(yang)
text 0, 50, "tmx "+ str$(tmx)
text 0, 60, "tmy "+ str$(tmy)
text 0, 70, " "+ str$(tmy)
text 0, 80, "cpx+tmx: "+ str$(tmx + ((get pick vector x() + camera position x(0))))
text 0, 90, "cpy-tmy: "+ str$((get pick vector y() + camera position y(0)) - tempmousey)
text 0, 100, "cpz-tmz: "+ str$((get pick vector z() + camera position z(0)) - tempmousez)
endwhile
`----------------------------------------End Main Loop----------------------------------
function ControlCamera()
mx=mousex()
my=mousey()
mmx = MouseMoveX()
mmy = MouseMoveY()
mmz = MouseMoveZ() * (mmzr-(CameraDist*.0001))
if MouseClick() = 1 and tag_state=0
`Take a snapshot of initial mouse cursor click location on the terrain
if pick object(mx, my,1,1) =1
tempmousex = (get pick vector x() + camera position x(0))
tempmousey = (get pick vector y() + camera position y(0))
tempmousez = (get pick vector z() + camera position z(0))
endif
tag_state=1
endif
If MouseClick() = 1 and tag_state=1
if pick object(mx,my,1,1) = 1
tmx=tmx+(mmx)
tmy=tmy+(mmy)
movecameraX(2, mmx)
movecameraY(2, -mmy) `work on this one
endif
endif
if MouseClick()=4 and shiftkey()=0
XAng = XAng + ((mmx)*.15)
YAng = YAng + ((mmy)*.15)
endif
if MouseClick()=4 and shiftkey()=1
XAng = XAng + ((mmx)*.0075)
YAng = YAng + ((mmy)*.0075)
endif
if YAng>90 then YAng=90
if YAng<0 then YAng=0
CameraDist = CameraDist + mmz
if CameraDist>-.25 then CameraDist = -.25
if ypos<23 then ypos=23
if ypos>40 then ypos=40
if XAng<0 then XAng=360
if XAng>360 then XAng=0
position camera 0, object position x(2), object position y(2), object position z(2)
rotate camera 0, YAng, XAng, 0
move camera 0, cameradist
mmx=0
mmy=0
mmz=0
if MouseCLick() = 0
tag_state = 0
endif
endfunction
function movecameraY(cams as integer, amount as float)
turn object left 2, XAng
move object 2, amount
turn object left 2, XAng
endfunction
function movecameraX(cams as integer, amount as float)
turn object right 2, XAng+90
move object 2, amount
turn object right 2, XAng-90
endfunction
Home is where my souped-up computer is...
