Thursday, December 14, 2017

PC-2 Password Generator

So after the pyrrhic success with my PC-2 Enigma, I decided to repurpose a previous version for something else:  Password generator.

This version started out as an Enigma, but instead of needing an array to store the characters that I could us, I just used the ASCII character set 32-127.  Instead of looking up a value in an array, I could just do an "ASC" or "CHR$".  Much faster.

It had a big drawback, though.  Some of the characters in the table could not be input from the PC-2 keyboard.  So much for decrypting something.

But a password generator only needs to "encrypt".

1000 "V" clear: dim a$(1)*80: wait 0
1010 input "Start value:";r
1020 input a$(0)
1030 for i = 1 to len(a$(0))
1040 a= asc(mid$(a$(0),i,1))
1050 a=a-32+r
1060 if a > 95 LET a=a-96
1070 a=a+96/2
1080 if a > 95 LET a=a-96
1090 a=a+32
1095 :rem PC-2 chars not in standard ascii
1100 if a = 39 let a = 34
1110 if a = 91 let a = 123
1120 if a = 92 let a = 47
1130 if a = 93 let a = 125
1140 if a = 96 let a = 44
1150 if a = 127 let a = 32
1160 a$(1)=a$(1)+chr$ a
1170 r=r+1: if r >95 LET r=0
1180 cursor 0:print a$(1)
1190 next i
1200 wait: print a$(1)
1210 end

The only thing special was the 6 characters that the PC-2 uses that doesn't match up with the standard ASCII character set.  The PC-2 doesn't any single quotes (forward and back quotes).  It doesn't have "[" or "]" - instead it uses Yen and Square Root.  The "\" was some up-down square bracket that the PC-2 uses to denote an empty place in the string (sort of like a null).  And DEL was just like space.  So I convert those characters to something else.

This works much better and much faster.
So you enter something like "Tasty Cookies" and get "0>QSYa%RSPOL{" (start value of 12).
Given the same inputs, you will always get the same output.

I can say that the PC-2 is still useful today.

PC-2 encryption

So I decided to play some with programming my PC-2.  After much trials and tribulations (not to mention a nice long walk down memory lane re-learning how to program in BASIC), I was able to get the original project working.

The original idea was to make a version of the german Enigma working.  But that wasn't working out.  So I settled for something that had an encryption and decryption component.

The cypher is a simple polyalphabetic cypher with a rot-13 thrown in just for fun.

Text is limited to 80 chars (limitation of the PC-2) but since it takes so long to encrypt, I doubt anyone will hit that.

The aa() array is used so that we only encrypt to values that are enterable on the keyboard - otherwise we can’t enter the values to decrypt.

The main problem is that it's very slow.  I mean really slow.  *sigh*  It works, but the lack of speed makes it impractical.

DEF A - Encrypt text
DEF D - Decrypt text

10 "A" gosub 610:Wait 0
20 input a$(0)
30 for i = 1 to len(a$(0))
40 a= asc(mid$(a$(0),i,1)): gosub "L": a=e: gosub "F"
45 a$(1)=a$(1)+chr$ e
50 gosub "Z"
55 cursor 0:print a$(1)
60 next i
70 wait:print a$(1)
80 end

110 "D" gosub 610
120 input a$(0)
130 for i = 1 to len(a$(0))
140 a= asc(mid$(a$(0),i,1)): gosub "S": a=e: gosub "F"
145 a$(1)=a$(1)+chr$ e
150 gosub "Z"
160 next i
170 print a$(1)
180 end

200 :rem encrypt with current rotor value
210 "L" gosub 810:e=b+r
220 if e > 83 LET e=e-84
230 return

300 :rem decrypt with current rotor value
310 "S" gosub 810: e=b-r
320 if e < 0 LET e=e+84
330 return

400 :rem reflector
410 "F" e=a+84/2
420 if e > 83 LET e=e-84
430 e=aa(e):return

500 :rem rotate rotor
510 "Z" r=r+1: if r >83 LET r=0
520 return

600 : rem setup
610 clear: dim aa(83), a$(1)*80:restore
620 input “Start value:”;r
630 for i = 0 to 83: read aa(i): next i:return
640 DATA 32,33,35,36,37,38,40,41,42
650 DATA 43,44,45,46,47,48,49,50,51,52
660 DATA 53,54,55,56,57,58,59,60,61,62
670 DATA 63,64,65,66,67,68,69,70,71,72
680 DATA 73,74,75,76,77,78,79,80,81,82
690 DATA 83,84,85,86,87,88,89,90,94,97
700 DATA 98,99,100,101,102,103,104,105,106
710 DATA 107,108,109,110,111,112,113,114,115
720 DATA 116,117,118,119,120,121,122
730 return

800 :rem lookup
810 for ii =0 to 83: b = ii
820 if aa(ii)=a then return
830 next ii
840 return 0

Saturday, December 02, 2017

The end of "vacation"

So yesterday was my last "vacation" day.  I start work at a new job on Monday.  Which is a good thing because I finished up most of my projects.

The MemoSaver project was (finally) a success.  I had the expected issues with the serial interface, but I got it working at 1200 BPS.  At that speed, even with large memos, it works pretty well.

I finished up my Christmas Lights project.
150 NeoPixels hooked up to an Arduino Uno.  I powered it off a 5V 10A power supply.  Everything's protected with (laugh) a utility bucket with a tight fitting lid and some silicone sealant.

Still more projects in the queue, though.  I have a Fun Light Switch Box.  I made one of these before, but made some mistakes (partly due to a poor design and partly my ignorance).  They updated the design and I've learned, so this one should work out much better.

I have a couple of Matchbox restoration projects that are almost done.  Just waiting for parts now.

I want to write some meaty software for my PC-2.  So I'm looking at porting the Enigma (yes, the German WWII encryption machine) to my PC-2.  Since it's a complete rewrite from a modern programming language to a very constrained BASIC, I have to take it all the way down to basics and redesign things.  A nice, meaty, project.

The rest of my projects remain in hold status.  When I get time...  (Probably after I retire in 18 years.)

Saturday, November 18, 2017

More DVD reviews

So, while finishing up the Christmas Cookie work (which is now done!), I decided to finish up the movies in my DVD queue.

Captain America: Civil War

It was OK.  Not as good as the first Captain America or Winter Soldier, but still good.  I think the reason the movie was just OK was that it was a "set up" movie for something later on.

Spiderman: Homecoming

This movie just failed to grab me at all.  It wasn't a bad movie, though.  I just couldn't get in to it.  But then I realized that they made it like the first Spiderman comic: for teens.  The reason Spiderman took off was that the hero was in the same demographic as the comic book readers.

So this DVD went off to the "give away" pile.

So now the DVD queue is empty.
(Well, that's not quite true.  Dawn has the Little (out)House on the Prarie box set there, but I'll only watch that with her.)

Tuesday, November 14, 2017

Pocket Computer 4 printer (more)

So, here's more details about what I did (along with pictures).

The green/black wires used to be hooked up to the battery.  The yellow/purple (hard to see since I cut most of them away - near where the black/green wires attach to the circuit board) used to be hooked up to the AC adapter plug.

The green wire is negative and it's hooked up to the center pin.  The AC adapter that I used...
is something I picked up at the "junk store" and is just a 6V power supply.  I normally use these with my TRS-80 Model 100/102s.

The original battery pack was a set of 4 AAA NiCd rechargeables, so 6V was right.

Side note: I tried a couple of other "6"V power supplies, but they were showing me 9-10V on my volt meter.  Strange.

Anyway...  it's working.

Sorry for the sideways video.  I had hoped that it would have auto rotated.

All I did was a simple program that loops 1-20 and displays the number and the number multiplied by 10.  I used Mode 7 to send the output to the printer.

Notes:
1. This will not work with the cassette interface hooked up.  Only with the printer directly connected.  I don't know why.  But since I use the cassette interface so rarely, I probably won't look into it.
2. You must have the power supplied to the printer before turning the PC-4 on.  Otherwise, you'll get an Err 9.

But overall, I'm pretty happy.  I liked working with these.  It was a nice learning experience.

Monday, November 13, 2017

Pocket Computer 4 printer

They live!


So I have 3 Pocket Computer 4 printers.  I smoked one of them a while ago.  So that one is on the "display" unit.

The PC-4 printers were originally powered by NiCd batteries.  After 30 years, they are shot.  This was always one of the issues with the PC-4 printer.  You couldn't charge it and use it.  You could only do 1 at a time.  So once the batteries wore out, the printer was kinda useless.

My solution was sort of against the rules.  I diked the batteries out.  I de-soldered and cut out the wires that led from the AC adapter to the charging circuit.  Then I attached the wires that came from the batteries to the AC adapter port.

This means the the printer is now powered by the external AC adapter.

As expected, the 6V 20mA adapter that originally came with the printer was pretty much useless.  But using a 6V 400mA adapter (that I use with my Model 102) powered the printer just fine.

I performed the same process on the other PC-4 printer and it worked fine too.

Pine A64

But all is not well.

I pulled out my Pine A64 to see if I could replace Dawn's aging Dell Optiplex with it.

Upon hooking it up, it failed to boot.  So I reflashed the SD card.  Still no go.
I've tried on 2 different keyboard/monitor/mouse configurations and nothing.  Just the red power indicator.  No indication that it's doing anything.

I'm pretty sure it's dead. 8(
Another item for the elementary school "show and tell" box.

Addition:  I checked the 'Why won't my Pine A64 boot' sites.  One of the reasons was a corrupt SD card.  So I used a nicer card, verifying the card after flashing it.  No go.

Pocket Computer 2 printers

So when I got my lot from the Tandy Corporate Auction a while back, in it was a Pocket Computer 2.

When I "examined" the lot (from the pictures on the web site), it had a bunch of stuff.  Including some Model 100/102 stuff and Pocket Computer 4 stuff.  I had a PC-4 through college (I purchased it with my high school graduation money) and I wanted to get the stuff that I couldn't afford back then.  And then there's my Model 100/102 addiction that I seem to have gotten.  8)

So the working PC-2 was an unexpected bonus.  And I've fallen in love with the device.  So I purchased some cassette/printer interfaces from eBay.  I did get some cassette interfaces in the Tandy Lot, but they were for the PC-1.

The two PC-2 cassette/printer interfaces that I got were not complete functional.  The cassette part worked just fine (did you know that you can load/save programs via the sound board in your PC?) but the printer part didn't.

So I decided to see if I could get the printers working.  But no luck.  I did find a problem with one of the printers.  The guide rail for the print head was loose.  I fixed that.  But they still give me an "Error 6" when first powered up.

Now, I did have to do a battery-ectomy on both.  The NiCd batteries were 30 years old and starting to leak.  According to the information on line, the batteries were only there to give the printer a boost since the solenoids for the print head needed > 1A of power when firing and the AC Adaptor only produced 500mA.  So I made sure that I had a big enough power supply (2A in this case).

The printer seemed to come alive with the print head moving a bit, but still no go.  Ah, well.  30 years is a long time.  I'm surprised that these lasted as long as they did.

But I also took apart one of my PC-4 printers.  And I'm reasonably sure that I can get that working.  Another project!

Friday, November 10, 2017

Bacon Marmalade

This stuff is awesome!

You can get this from the Rockford Cheese Shop downtown Rockford.

Thursday, November 02, 2017

Doctor Strange

Now that I have extra time on my hands, I'm catching up on my DVDs.  So I finally popped Doctor Strange into the DVD player.

I have to say that I'm rather disappointed.

It's not that good compared to the other Marvel movies that I've seen.  Too much eye-candy (but not to the extent of Speed Racer) and too little story.  Plenty of action, so it's not boring.

I guess that I just expected so much more.

Unemployment

Another new experience: I just signed up for unemployment.

Talk about bureaucracy (or should I say burro-cracy).  I still have to jump through a couple hoops, but things actually went rather smoothly.

I probably won't get anything (yet) because of severance and the like.  But still...  New experiences are always a good thing (even when they aren't fun).

Wednesday, November 01, 2017

Latest

Wow.  No update since May.  But I have an excuse since I've been busy and big changes have happened.

I've gotten a TPDD2 for my T102 and I had fun playing with that.  I've also gotten LaddieAlpha working on my Raspberry Pi 0 W.  My latest project there is to make a drive activity light work.  I also need to make a button that reboots LaddieAlpha.

LaddieAlpha is C#/Mono.  I tried to update it to use .Net Core 2.0, but there is still no hardware support in .Net Core, and LaddieAlpha needs to change the serial port settings.

I'm playing with the idea to logging into the Pi 0 W using the serial port.  But the TELCOM program on the T102 is very limited.  While it does work to play some games (like Adventure), it's very hard to edit a file using vi.

I've also gotten my PC-2 and PC-4 software loaded through the cassette cradle and the sound card on my PC.

I am no longer on my condo board!  Yay!  Certain people on the board want to personally be "The Board" and make decisions without the input from the rest of the board.  Those people are also unprofessional, abusive and (should I say it?  Yes!) stupid.  Rather than deal with this, I'll just let them self-destruct (or hopefully get the abusive one out when she does something improper).

But the big change is that I have, for the moment, joined the ranks of the Unemployed.  Yes, after 20 years, my "position has been eliminated", which we figure is pretty true.  They aren't doing any new development.  Heck, all the programmers pretty much went to the outsourcing company.  So if we don't have any programmers and aren't doing any new development, why do they need an architect?  Makes sense.

The only problem with their thinking is that the outsourcing company is pretty much staffed by newbies.  They aren't dumb by any means.  But they don't have any experience.  Some don't even know how to install the developer tools.  I figure that sometime later this month, I'll get a call to "consult" with them (i.e. "please come in and work hard to pull our rear ends out of the fire").

I intend to have a new job before then.

I now have 6 recruiters looking out for me.  I have 2 companies that have expressed an interest and I've applied at about 10 in the last week.  So not too bad.

I'm not in any big rush since the severance package kicks in soon (which is one big reason why my ex-company and the name of the outsourcing company will not be posted here).  So I basically get my paycheck until Feb. 2018.

Wednesday, May 03, 2017

Penguicon - the last post

After reading through ESR's letter about Penguicon, I did some more digging and located Jay Maynard's post about the event.

This validates my feeling that the left-wing regressives have taken over Pengiucon.

On Jay's post, many of the comments are just attacks, doing a "you don't agree with me, so you must be a bad person". 

But one of the comments is stood out for me:
A very large portion of the programming presented by the convention was suggested by, and run by, attendees. As the demographics of the convention skew younger, less white, and less male than typical tech conferences, the panels presented reflect the submissions of those panelists. You see less panels aligned with your beliefs not because they are excluded but because less people with those beliefs attend the convention that hit nearly 1,600 people this year — a convention that’s grown by 100 to 200 every year for the past 5.
I agree 100%.  Penguicon has changed.  It started off as an inclusive convention that welcomed everyone.  We welcomed the left-wing regressives.  And they showed their gratitude by excluding everyone that doesn't think like them.

Penguicon is no longer for me.  I had hoped that things would change, especially after Jay and Eric spoke out about the problems.  But I see that will never happen now.  I had hoped that after a couple years things would get better and I would return.  But that won't happen now either.

But that makes me sad.  I assume that Eric, Jay, and others are sad about this as well.  That's why we spoke out about these problems.  We don't want to see Penguicon die.  But there's nothing we can do now to stop that.

This is the last post.  I will no longer even follow Penguicon anymore.

Sunday, April 30, 2017

The Penguicon that never was

Penguicon was this weekend.  We didn't even notice that we had missed it until today.

What I did this year was go through the panel list and pull out everything that I wanted to see.  After thinking about each one, I pared that list down to about 5 panels.  Pretty bad.  Out of 48 hours of panels, I could only find 5.

I researched the topics on the 5 panels in less than one day.

So I believe that we made the right decision to skip it.  Unless I see big changes for next year, we probably won't be going ever again.


Today (5/2/2017), a message to the Penguicon-General mailing list from Eric S. Raymond (if he posts it on his web site, I'll edit to add the link here) basically echoed the issues that I already documented with Penguicon.  But I guess this year, it was even worse, vindicating our decision to not attend.

I didn't realize, but one of the GOHs was a SJW (Social Justice Warrior).  I'm really glad I didn't waste my time and money going this year.  Penguicon has been taken over by the left-wing regressives as I thought.


Wednesday, April 12, 2017

RDOS - Beta version ready

The beta version of rdos is ready.

Features:

  • "Boot" everything from a clean Tandy.  This will load the "RLOAD" program which will let you load all the other programs.
  • Load, Save data files (sorry, the BASIC doesn't let me load tokenized BASIC files).  You can still load programs as text files, then "LOAD XXX.DO in the BASIC interpreter.
  • List files on the drive.
  • Change directories on the drive.
  • Rename and delete files on the drive.
  • You can "reference" a file on the drive.  Then you can LOAD "COM:98N1D the file at the touch of a button.
  • Also, file seek is supported plus the reading of a number of bytes (writing was already supported).  This will allow you to write a program that uses the drive as "virtual memory".
The project has all the clients written and fairly well tested.  Also examples for the file seek feature.

I haven't "beat the heck out of it" yet as far as use.   It seems to work just fine for the limited use and testing that I did.  So I'm pleased right now.

Sunday, April 09, 2017

RDOS - Arduino TPDD Reborn

The programs that I wrote to talk to my Arduino set up worked, even though the original clients didn't.  So, I decided to write my own clients to talk to it.

The new project is called RDOS (for Ron's Disk Operating System - hey, I created it, so I get to name it).  You can get it here.

Since I now control both the client and the device, I decided to simplify things.  So it no longer does the full TPDD protocol.

Commands:
  • Directory Reference - Option 0, 1 and 2 are used.  Option 3 was changed from "request previous directory block", to "change directory". Option 4 is removed.
  • Open file - Implemented
  • Close file - Implemented
  • Read file - Implemented
  • Write file - Implemented
  • Delete file - Implemented
  • Format Disk - Unsupported
  • Drive Status - Unsupported
  • DME Req - Unsupported
  • Drive Condition - Unsupported
  • Rename file - Implemented
  • TS-DOS Mystery Command - Unsupported
  • TS-DOS Mystery Command - Unsupported
File names were padded, internally, to be 6 bytes, dot, 2 bytes. This restriction was removed.  You can use the full 24 bytes for the remote file name.  You still need to name it to be only 6 bytes on the Tandy size, though.
Checksum will not be supported (since the communications is much better, it's no longer needed).
Client programs:
  • RLIST.BA - List the files in the current directory
  • RLOAD.BA - Load the file into the Tandy - the program loaded by the boot button
  • RSAVE.BA - Save the file into the SD card
  • RUTIL.BA - Delete/rename files, change working directory
Notes:
  • Tandy BASIC does not permit you to open a .BA file for writing, so you can't load a tokenized BASIC program. You can only load it as a .DO file and then do a LOAD "xxx.DO" in the BASIC interpreter. Note that you can SAVE a .BA file, though. So this project only works for data files, not binary program files.
  • Don't bother trying to save a file with any extension other than .DO. You will get an "?MN Error". Just leave the extension off for the Tandy file name and let it default to .DO.
  • It will "boot" the loader program by doing a LOAD "COM:98N1D and pressing a button. Once the loader program is there, you can load the save, list and utility programs.
  • I implemented directory handling, so you can use a nice, big SD card and subdirectories.
I've booted up from a hard reset on my T102, loaded up all the programs, and played for a bit. I still need to really kick it around, so it's in alpha test right now.

Wednesday, March 29, 2017

Arduino TPDD Update - fail

tl;dr - failure.  I can't get the RS-232 communications to work.

Longer explanation:
So the latest shifter arrived and I had hoped that it would take care of the communications problems.  It didn't.  It did loop back the RTS/CTS and DTR/DSR lines on the RS-232 side, so I could use a normal cable instead of the Frankenstein cable I created (one less thing to go wrong).

I had hoped that the shifter would handle all the flow control, but no.  I still believe that this is the real root of the problem.

I created a test program, dusting off my memory banks and programming in BASIC for a bit.  I was able to send commands to the Arduino and validate that I was getting the correct response back.  I was.  No problems.

So why didn't it work with TS-DOS?  Someone very nicely posted an annotated dump of the TS-DOS program.  So I went through that looking for a smoking gun.  Keep in mind that all the debugging that I did so far showed that I sent the correct responses for the commands, but still TS-DOS treated my device as something else.

After looking through the code, I see where it determines what device it hooked up.  The short answer is that it looks like my T102 doesn't get a response for one of the commands.  TS-DOS then shifts down to 9600, at which point communications no longer works - because the Arduino wants 19,200.

I did try setting my communications to 9600 and I got farther, but it still wouldn't work correctly.  It looks like data was getting dropped sending to the T102.

I can't see why TS-DOS doesn't think there is something there.  My BASIC program works just fine, sending and receiving data.  So it's not hardware.  It's software, but where?  I have no idea.

So I declare this project Failed.

My options are:

  • Use a Raspberry PI instead.  Then I can use the USB-Serial cable that works with dlplus on my Linux systems.
  • Create my own version of TS-DOS that just uses the serial ports to communicate - since I know that I can make that work.

Neither seem worth while to me right now, since my T102 is only a hobby.  So I think I'll put this aside for a while.

Monday, March 06, 2017

Arduino TPDD update

Progress, but not.

So the last update, it was communicating.  I was seeing commands being sent and my responses.  But when I looked harder at the output, something was off.  Everything looked right, but something was off.  I was getting "junk" just as communications stopped.

First thing I thought was "too fast".  So I dropped the speed from 19,200 to 9600.  More communications!  Yay!  But things still weren't working.

So I decided to step back and see what "good" communications looked like.  So I got my USB to Serial cable, hooked it up to my PC, and ran dlplus - having recompiled dl.c with debug mode on.

I captured the output and compared it to mine.

The input and outputs "match" in that when I get command X the correct response it sent.

Interestingly, the "mystery" commands aren't sent to dlplus, but they are sent to my Arduino setup.

I think that the data that I'm sending isn't all getting there.  That means I need to try another shifter, maybe one with hardware flow control lines available.  *Sigh*  I did not want to mess with RS-232 hardware flow control, but it looks like I'll have to.

Tuesday, February 28, 2017

Arduino TPDD update

It lives!

The problem that I had was my null modem cable.  For my use, I should not have crossed the TX/RX lines in the cable.  All I needed to do was loop back the control lines.

At this point, I have communications.  As expected, I found bugs in my code.  But I get data and send data and I can see what's going on.

Now, I need to handle the TS-DOS extensions that I didn't expect.

Sunday, February 26, 2017

Arduino TPDD update

I tried to change the RS-232 Shifter to provide the signals that my 102 needed, but that didn't work out.  So I made a null modem cable based on the Club 100 documentation.  So that's all soldered and looking good.

However, testing completely failed.  Using the new cable, no tests worked and no communications at all.  Going back the old cable, my tests worked.  So the new cable is the problem.

But I checked continuity on all the lines and everything was correct.

I'm stumped right now.

Friday, February 17, 2017

Arduino TPDD update

The code is written, tested, reviewed, and tested again.  Everything looks good.

I've validated the inputs and outputs from the Arduino through the serial monitor and everything looks good.

But I'm stopped at TS-DOS.  It keeps saying that the drive is not ready.  I expect it has something to do with the cable signaling.

Here's what my monster looks like right now:

Wednesday, February 15, 2017

Arduino TPDD update

The Arduino Uno had too little SRAM for both the SD library and the other code I need to run. So I updated to an Arduino Mega (which has 8K instead of 2K of SRAM).

The Mega moved some pins around, so I had to adjust for that.  But after some trial and error, the SD library is working along with the software serial library.

I am able to access the SD card and hear commands from my T102.

I also added a drive activity light.

I've spent time studying the DeskLink+ (dl.c) code as well as the TPDD base protocol at bitchin100. So I'm ready to start writing the code that will link the serial communications with the SD card.

The code is now on GitHub under a GPL license.  I'll be checking in fairly frequently as I start fleshing out the code.

Wednesday, February 08, 2017

Penguicon 2017 - why I won't be there this year


I've attended Penguicon every year since Penguicon 2.0. I loved it back then. But I don't want this post to become a "Pining for the glory days of the past" post.

Over the last few Penguicons, I've noticed some trends:
  1. Too much diversity.
    By trying to become everything to everyone, Penguicon has become nothing to everyone. Out of all the tracks, I only like 4. Of course, everyone else is the same, but just a different 4 tracks. The problem is that with 20 tracks, that's only 1/5 of the resources for what I like.
    There's been no big speakers, for example, in any areas.
    This year's talent, for example, is Cory Doctorow and a bunch of other people who I've never heard of and even when I read their bios, don't really care to hear from.
    Cory is a nice person, and a good writer, but he really hasn't done much in the last several years.  I like him, but if this is the best Penguicon do so for a GoH, it's an indication that the con has really slid down.
  2. Social Justice "warriors" and other regressives (not "progressives").
    These are people with an attitude of "I can do what I want to offend you, but don't you dare offend me."  There are a growing number of very inconsiderate people at the con.  Keep in mind that I know how inconsiderate geeks can be since we tend to focus on ourselves.  I account for that.  This is different.
    These are people who do things that they know will be offensive and harmful to others.  They do it on purpose for the purpose of offending (or as they call it "to make a statement").
  3. Non-con-people.
    I realize that you can't keep the public out completely, but over the last few years, I've noticed a growing number of non-con goers in the hallways in the evenings. It's kinda nice to know that "normals" like geek parties, but these people aren't always nice people to have at the con.
The combination of less content for me and more objectionable people attending has made Penguicon something that's not for me and my wife.

As a geek, changing my routine is something that makes me apprehensive. I tend to resist it. But the more I think about how little I've gotten out the last 3 (at least) Penguicons, and the less I see as far as talent (again) for this year, the apprehensiveness has faded.

We'll probably go to the Vermontville Maple Syrup festival instead. After all, they may be hicks out there, but they don't try to offend or make "statements", and there's more interesting things to do.

Arduino TPDD (Tandy Portable Disk Drive) project

Because I'm a glutton for punishment, and because I love old tech, I created a project for myself.

I've always loved the Tandy 100/102, but by the time I could afford one, they were gone from the market.  Later, I had the money, but not the time.  Now I have the time and the money, so I picked up some second hand ones from eBay and enjoyed the feel old old time computing.

But one thing that I wanted was a nice, more modern, way to store my data.  Club 100 used to sell a NADS box, but no longer.  So I figured I could create one myself.

The ingredients:
An Arduino Uno R3
I needed to hook it to my Tandy 102, which only supports RS-232 serial, not the TTL serial that the Arduino supports, so I picked up an RS-232 Shifter.  This converts RS-232 to TTL.
I also needed something to store the files on, so I picked up a MicroSD shield for the Arduino.

Now, for the software.  Luckily, someone already wrote a TPDD emulator called DLPlus which works under Linux and you can get the source code for.

The hardware hooked up easily and it didn't take me too long to get the communication working. After about 1/2 a day, I was able to send a TPDD command from my 102 to the Arduino and have the Arduino parse the command and validate the checksum.

Then I soldered up the MicroSD shield, set up a SD card, and started to get that part working on the Arduino.

Problems.  I knew that this was going too smoothly.

To make a long story short, the problem was the SD library for the Arduino uses up A LOT of stack space on the Arduino (we only have 2K of it).  So while the program itself was well under the 32K limit, adding the SD card code hit the stack space limit when the program ran.

Dead end.

I have a Arduino Mega on order from Adafruit.  That has 8K of stack space.   We'll see what happens when it arrives and I get it working.