I was searching for a way to control SerPortSel3 within software. When you open the serial port on the Newton, it sets SerPortSel3 LOW. I had hoped there was a parameter you could pass to the endpoint that would keep SerPortSel3 high. (See earlier posts)
I was searching the DDK headers and I found this (HALOptions.h)
#define kHWLocExternalSerial 'extr'
#define kHWLocBuiltInIR 'infr'
#define kHWLocBuiltInModem 'mdem'
#define kHWLocPCMCIASlot1 'slt1'
#define kHWLocPCMCIASlot2 'slt2'
#define kHWLocPCMCIAAnySlot 'slot'
#define kHWLocBuiltInExtra 'tblt'
kHWLocBuiltInExtra seemed promising. I haven't seen it mentioned in any of the other docs. So I whipped up a little package to enable it as a valid modem location:
InstallScript := func(partFrame,removeFrame)
begin
AddArraySlot(GetGlobals().ModemLocations, {title: "Modem", id:"mdem"});
AddArraySlot(GetGlobals().ModemLocations, {title: "Extra", id:"tblt"});
end;
I had hoped that 'tblt' would open Serial3 and set SerPortSel high. This is not the case. It turns out that kHWLocBuiltInExtra is actually Serial Channel 2.
The n2 platform documents say that SerialChannel2 is a "low speed channel for printer support". I've also seen references that Serial2 is for keyboard. Since Serial2 is not exposed on the external port, I don't think that it is used for the keyboard.
In all, kHWLocBuiltInExtra is one more piece of the internal serial slot puzzle.