OK, I have a solution of sorts.
I replaced the terminal object in the spin code with fullDuplexSerial
gutted the vp.config stuff in main
commented out the clear and position function calls since they don't exist in fullDuplexSerial
added a start call to define the usb port parameters and 'tada; Everything works exactly as desired
There might be a better way to pull this off, and if there is, I'd love to know about it, but so far, this is the only one that I've gotten to work.
SPin listing after mods
============================================================
CON
_clkmode = xtal1+pll16x
_xinfreq = 5_000_000 '80 MHz
_motorlpin=0 'Left motor
_motorrpin=1 'Right motor
_micpin=8 'Microphone
_mic2pin=9 'Microphone Dac
_iranodepin=1 'Common anode of ir distance sensors, driven with 38khz signal
_audiolpin=10 'Audio Left
_audiorpin=11 'Audio Right
_videopin=12 'Video
_video2pin=13 'Video
_video3pin=14 'Video
_video4pin=15 'Video
_mousedpin=24 'Mouse Data
_mousecpin=25 'Mouse Clock
_keydpin=26 'Keyboard Data
_keycpin=27 'Keyboard Clock
_eepromDpin=28 'Eeprom Data
_eepromCpin=29 'Eeprom Clock
_vppin=30 'ViewPort Conduit
_vp2pin=31 'ViewPort Conduit
OBJ
_vp :"FullDuplexSerial" 'used to be "terminal" 'terminal+conduit
VAR
long _outp,_inp,_io
long x
long _c0,_c1
pub _main|_s_pub0[70]
_vp.start(31, 30,0, 19200)
'initialize global objects and call global start blocks
_c0:=4
_c1:=4
cognew(_pub0,@_s_pub0)
repeat
_io:=ina
pub _broadcast(msg)
case msg
-1:
pub _broadcastsync(msg)
case msg
-1:
pub _do_state(state)
case state
-1:
'other public functions
pub _pub0'*(24,53):cognew($0,@_s$0)
{prints values to the built-in terminal- click on "view terminal" after loading.}'*:{$}
'_vp.Clear'*:_vp.Clear
'_vp.position(_c0,_c1)'*:_vp.position($,$)
repeat'*:repeat
x:=_vp.rxcheck'* 1:$:=$
if x>0'*:if $
if x=="a" '* 1:if $ %else
_vp.str(string("tada"))'* 1:_vp.str($)
else
_vp.dec(x)'* 2:_vp.dec($)
'data
DAT