I agree, just one pre-amble for the whole set of commands.  It could be 
extended further in time, but to start, use one pre-amble to add these extra 
features.  One could really use this to a full network solution with the right 
Wifi integration (there are many types of this around…)

Bill Nobel
b_no...@hotmail.com<mailto:b_no...@hotmail.com>



On Sep 22, 2019, at 3:57 PM, Brian White 
<bw.al...@gmail.com<mailto:bw.al...@gmail.com>> wrote:

Sure, as long as it's something a real tpdd and other tpdd servrs would ignore 
harmlessly, like the XX YY prefixes instead of ZZ.

I think XX should really be a prefix for a whole extra set of commands, instead 
of using a whole potential "name space" as it were, just to do a single thing 
the way it does now. IE, I don't think there should be a QQ to query the time, 
SS to set the time, DD to install ts-dos, TT to install teeny, LL for login... 
Just XX-command the same as ZZ-command.

Except XX and YY could be considered already burned, so it can't be litterally 
XX or YY, so we make up ONE more new one that gets a bunch of new commands 
structured similar to the ZZ commands.

I was originally outputting console messages to a little oled myself just for 
play, and with the way CONS is a variable now (well a preprocessor constant), 
it's easy to put it back in. But I decided I couldn't think of any actually 
pressing need for a display that was worth the power draw or parts or code. The 
client is the display. Meanwhile I think they have tiny e-ink displays now, and 
that low power draw would be better.

There's probably 35 cool kooky things you could add to a super-mega-tpdd I just 
haven't thought of. Print to server shared printer or print-to-disk? Network 
drive?

--
bkw




On Sun, Sep 22, 2019, 9:04 PM Bill Nobel 
<b_no...@hotmail.com<mailto:b_no...@hotmail.com>> wrote:
I got it working flawless now Brian thanks again.  I’ve started to do a few 
mods to it already, I merged in a ILI9341 LCD with touch that I plan to have a 
mini file explorer.  Also I like the idea of the RTC in your comments in the 
source.  Suggestion for that, could it not have a small basic program send a 
unique command over the RS-232 and process the return data?  It should be just 
a matter of enhancing the base TPDD driver to include a new pre-amble for 
extended commands.

Bill Nobel
b_no...@hotmail.com<mailto:b_no...@hotmail.com>



On Sep 21, 2019, at 6:34 PM, Brian K. White 
<bw.al...@gmail.com<mailto:bw.al...@gmail.com>> wrote:

On 9/21/19 4:46 PM, Bill Nobel wrote:
Thanks for this Brian,  I didn’t even think there was a Teensy version already. 
 I’ve reverted my base code to this version and seems to catch packets better.  
Question though, is there a specific reason why it runs @ 2mhz on the Teensy?


With TeensyDuino installed you can specify whatever mhz you want to run the cpu 
at in the Android ide.

I remember manually selecting different speeds to find the lowest speed that 
still worked, to reduce power draw.
With low cpu speed and adding hardware interrupt wake/sleep calls to the code, 
I managed to get down to 3.5ma or so while idle, depending on the sd card. 
Different brands of sd card have big differences in power draw even while idle. 
I got the sleep and initial power-on behavior working better after this video, 
and that's where that github currently sits. It's not *great*. I don't present 
it as feature complete and thoroughly tested. It's tested about as far as that 
video.

I didn't think the ide choice was recorded in the .ino file or anywhere else 
within the repo, just local user settings, but maybe it is.
Because, see this comment:

// Debug console - where shall all console messages go?
// Teensy can not use Serial (usb) below 24mhz
// But can do the the TPDD job all the way down to 2mhz, which uses the least 
power.
// Usually "Serial" or undefined, but could add oled etc for output-only display
// If undefined:
//   * All Serial (built-in usb) code is #ifdeffed out so it isn't in the 
microcontroller at all
//   * Cpu can be underclocked all the way down to 2mhz
//#define CONS Serial
#undef CONS

I found that the tpdd functions worked at 2mhz, but I needed 24mhz to use the 
built-in serial-over-usb console. I set the code to default to no console, 
which *allows* you to run as low as 2mhz, but I didn't think it was actually 
somehow specifying 2mhz by recording that in a file somewhere, except possibly 
some local user config file.

Teensy has audio hardware so I was thinking ultimately it should be able to 
both play and record cassette files and save them as files. And there is an rtc 
so it should be possible to make a small basic app that reads a fake/virtual 
file via tpdd protocol. The file wouldn't exist, merely the tpdd server would 
recognize a magic filename and send back the current date/time from the rtc in 
place of a file from the filesystem.

And of course a dos-injector. dlplus already has something to do that, which I 
have not yet actually gotten to work, however it does look pretty 
straightforward and no reason it shouldn't work and looks simple to clone in 
sd2tpdd (or PDDuino as I've apparently called a local copy on my laptop). I've 
mostly just used the separate teensy installer app that comes in the dlplus zip 
file because it works. I think the best would be to duplicate the tpdd2 
bootstrap procedure. That works very well and requires very little of the user 
when starting from scratch with as fresh cold-reset M100. But that's at least 
partly harware dependent. The tpdd2 can tell if the m100 is "listening" or not 
at power-on, and decides based on that whether to just squirt out the IPL basic 
code even though it didn't receive any commands. I think it should be possible 
to replicate that on teensy. It might require actually hooking up more of the 
serial control lines so the teensy can read the state of dtr/dsr or something.

Anyway, I did manually compile my copy to run at 2mhz, via Tools->CPU Speed, 
but I would have thought if you just took the code and compiled it, it would 
use the default 180mhz for Teensy 3.6.
And the way the code is configured as it sits on github, it can be run at 2mhz 
because the built-in usb-serial console is disabled.

https://www.youtube.com/watch?v=_lFqsHAlLyg

--
bkw

Bill Nobel
b_no...@hotmail.com<mailto:b_no...@hotmail.com> 
<mailto:b_no...@hotmail.com<mailto:b_no...@hotmail.com>>



On Sep 20, 2019, at 9:06 AM, Brian White 
<bw.al...@gmail.com<mailto:bw.al...@gmail.com> 
<mailto:bw.al...@gmail.com<mailto:bw.al...@gmail.com>>> wrote:

I don't remember any checksum problems with directories with this code on 
teensy 3.6

https://github.com/aljex/SD2TPDD/tree/bkw_teensy36

It's not a complete implementation though so I would be interested in a good 
solid re-do.

Note specifically the bkw-teensy36 branch, not master. Master is Jimmy Petit's 
original that I forked from.

But I was reading and writing files and using sub dirs and getting good 
listings in ts-dos etc.

On Fri, Sep 20, 2019, 5:36 AM Bill Nobel 
<b_no...@hotmail.com<mailto:b_no...@hotmail.com> 
<mailto:b_no...@hotmail.com<mailto:b_no...@hotmail.com>>> wrote:

   I should also note an observation I’ve had with my code.  I’m
   going from the Teensy to a Max3232 to the T-102.  Even with power
   off on the 102 I receive garbage on the port.  My code seems to
   catch all the preambles though to start a packet. Code is
   starting to get larger so I’m going to post a Github for anybody
   to look at.

   Bill

   Sent from my iPhone

   > On Sep 19, 2019, at 10:17 PM, Bill Nobel 
<b_no...@hotmail.com<mailto:b_no...@hotmail.com>
   <mailto:b_no...@hotmail.com<mailto:b_no...@hotmail.com>>> wrote:
   >
   > Hi John, yes I receive 2 packets fine (with response) then
   things go strange only on checksum. Your C# routine is different
   from DLPlus for the Calc, I’ll try that in the morning and see if
   that changes.
   >
   > Sent from my iPhone
   >
   >> On Sep 19, 2019, at 9:58 PM, John R. Hogerhuis
   <jho...@pobox.com<mailto:jho...@pobox.com> 
<mailto:jho...@pobox.com<mailto:jho...@pobox.com>>> wrote:
   >>
   >> Are you sure you got a full, aligned packet? It starts with ZZ
   , counted length, no missing characters?
   >>
   >> The DLPlus checksum is correct. More likely you're misaligned,
   or somehow dropped, swapped, or corrupted a character.
   >>
   >> Here is the C# code too for comparison
   >>
   >>        public byte Checksum(byte[] ary, uint ofs, uint fence)
   >>        {
   >>            uint sum = 0;
   >>
   >>            for (var i = ofs; i < fence; i++)
   >>                sum += ary[i];
   >>
   >>            return (byte)((~sum) & 0xff);
   >>        }
   >>
   >> Welcome to the cabal of TPDD protocol initiates.
   >>
   >> -- John.





On Sun, Sep 22, 2019, 9:04 PM Bill Nobel 
<b_no...@hotmail.com<mailto:b_no...@hotmail.com>> wrote:
I got it working flawless now Brian thanks again.  I’ve started to do a few 
mods to it already, I merged in a ILI9341 LCD with touch that I plan to have a 
mini file explorer.  Also I like the idea of the RTC in your comments in the 
source.  Suggestion for that, could it not have a small basic program send a 
unique command over the RS-232 and process the return data?  It should be just 
a matter of enhancing the base TPDD driver to include a new pre-amble for 
extended commands.

Bill Nobel
b_no...@hotmail.com<mailto:b_no...@hotmail.com>



On Sep 21, 2019, at 6:34 PM, Brian K. White 
<bw.al...@gmail.com<mailto:bw.al...@gmail.com>> wrote:

On 9/21/19 4:46 PM, Bill Nobel wrote:
Thanks for this Brian,  I didn’t even think there was a Teensy version already. 
 I’ve reverted my base code to this version and seems to catch packets better.  
Question though, is there a specific reason why it runs @ 2mhz on the Teensy?


With TeensyDuino installed you can specify whatever mhz you want to run the cpu 
at in the Android ide.

I remember manually selecting different speeds to find the lowest speed that 
still worked, to reduce power draw.
With low cpu speed and adding hardware interrupt wake/sleep calls to the code, 
I managed to get down to 3.5ma or so while idle, depending on the sd card. 
Different brands of sd card have big differences in power draw even while idle. 
I got the sleep and initial power-on behavior working better after this video, 
and that's where that github currently sits. It's not *great*. I don't present 
it as feature complete and thoroughly tested. It's tested about as far as that 
video.

I didn't think the ide choice was recorded in the .ino file or anywhere else 
within the repo, just local user settings, but maybe it is.
Because, see this comment:

// Debug console - where shall all console messages go?
// Teensy can not use Serial (usb) below 24mhz
// But can do the the TPDD job all the way down to 2mhz, which uses the least 
power.
// Usually "Serial" or undefined, but could add oled etc for output-only display
// If undefined:
//   * All Serial (built-in usb) code is #ifdeffed out so it isn't in the 
microcontroller at all
//   * Cpu can be underclocked all the way down to 2mhz
//#define CONS Serial
#undef CONS

I found that the tpdd functions worked at 2mhz, but I needed 24mhz to use the 
built-in serial-over-usb console. I set the code to default to no console, 
which *allows* you to run as low as 2mhz, but I didn't think it was actually 
somehow specifying 2mhz by recording that in a file somewhere, except possibly 
some local user config file.

Teensy has audio hardware so I was thinking ultimately it should be able to 
both play and record cassette files and save them as files. And there is an rtc 
so it should be possible to make a small basic app that reads a fake/virtual 
file via tpdd protocol. The file wouldn't exist, merely the tpdd server would 
recognize a magic filename and send back the current date/time from the rtc in 
place of a file from the filesystem.

And of course a dos-injector. dlplus already has something to do that, which I 
have not yet actually gotten to work, however it does look pretty 
straightforward and no reason it shouldn't work and looks simple to clone in 
sd2tpdd (or PDDuino as I've apparently called a local copy on my laptop). I've 
mostly just used the separate teensy installer app that comes in the dlplus zip 
file because it works. I think the best would be to duplicate the tpdd2 
bootstrap procedure. That works very well and requires very little of the user 
when starting from scratch with as fresh cold-reset M100. But that's at least 
partly harware dependent. The tpdd2 can tell if the m100 is "listening" or not 
at power-on, and decides based on that whether to just squirt out the IPL basic 
code even though it didn't receive any commands. I think it should be possible 
to replicate that on teensy. It might require actually hooking up more of the 
serial control lines so the teensy can read the state of dtr/dsr or something.

Anyway, I did manually compile my copy to run at 2mhz, via Tools->CPU Speed, 
but I would have thought if you just took the code and compiled it, it would 
use the default 180mhz for Teensy 3.6.
And the way the code is configured as it sits on github, it can be run at 2mhz 
because the built-in usb-serial console is disabled.

https://www.youtube.com/watch?v=_lFqsHAlLyg

--
bkw

Bill Nobel
b_no...@hotmail.com<mailto:b_no...@hotmail.com> 
<mailto:b_no...@hotmail.com<mailto:b_no...@hotmail.com>>



On Sep 20, 2019, at 9:06 AM, Brian White 
<bw.al...@gmail.com<mailto:bw.al...@gmail.com> 
<mailto:bw.al...@gmail.com<mailto:bw.al...@gmail.com>>> wrote:

I don't remember any checksum problems with directories with this code on 
teensy 3.6

https://github.com/aljex/SD2TPDD/tree/bkw_teensy36

It's not a complete implementation though so I would be interested in a good 
solid re-do.

Note specifically the bkw-teensy36 branch, not master. Master is Jimmy Petit's 
original that I forked from.

But I was reading and writing files and using sub dirs and getting good 
listings in ts-dos etc.

On Fri, Sep 20, 2019, 5:36 AM Bill Nobel 
<b_no...@hotmail.com<mailto:b_no...@hotmail.com> 
<mailto:b_no...@hotmail.com<mailto:b_no...@hotmail.com>>> wrote:

   I should also note an observation I’ve had with my code.  I’m
   going from the Teensy to a Max3232 to the T-102.  Even with power
   off on the 102 I receive garbage on the port.  My code seems to
   catch all the preambles though to start a packet. Code is
   starting to get larger so I’m going to post a Github for anybody
   to look at.

   Bill

   Sent from my iPhone

   > On Sep 19, 2019, at 10:17 PM, Bill Nobel 
<b_no...@hotmail.com<mailto:b_no...@hotmail.com>
   <mailto:b_no...@hotmail.com<mailto:b_no...@hotmail.com>>> wrote:
   >
   > Hi John, yes I receive 2 packets fine (with response) then
   things go strange only on checksum. Your C# routine is different
   from DLPlus for the Calc, I’ll try that in the morning and see if
   that changes.
   >
   > Sent from my iPhone
   >
   >> On Sep 19, 2019, at 9:58 PM, John R. Hogerhuis
   <jho...@pobox.com<mailto:jho...@pobox.com> 
<mailto:jho...@pobox.com<mailto:jho...@pobox.com>>> wrote:
   >>
   >> Are you sure you got a full, aligned packet? It starts with ZZ
   , counted length, no missing characters?
   >>
   >> The DLPlus checksum is correct. More likely you're misaligned,
   or somehow dropped, swapped, or corrupted a character.
   >>
   >> Here is the C# code too for comparison
   >>
   >>        public byte Checksum(byte[] ary, uint ofs, uint fence)
   >>        {
   >>            uint sum = 0;
   >>
   >>            for (var i = ofs; i < fence; i++)
   >>                sum += ary[i];
   >>
   >>            return (byte)((~sum) & 0xff);
   >>        }
   >>
   >> Welcome to the cabal of TPDD protocol initiates.
   >>
   >> -- John.





Reply via email to