Socket Services 1.01

The HP palmtop contains an implementation of Socket Services 1.01.

From Socket Services viewpoint, the HP palmtop has one adapter (number 0) and the adapter has one socket (number 1), which is the PCMCIA card slot. Socket Services has no knowledge of other devices in the system such as System ROM. This means that there are necessarily some special considerations. For example, the GetWindow function cannot return the true window state if the window is currently mapped to System ROM since System ROM is not a socket.

The Socket Services Status Change Callback goes to its client, CardBIOS. Since Socket Services is not designed to have multiple clients, it is recommended that applications register as clients of CardBIOS to obtain card change events. See the CICDEMO program discussed below.

It is expected that CICDEMO will provide a sufficent illustration of Socket Services usage for most application's needs. However, complete Socket Services 1.01 documentation is available upon request (note that it is no longer available from the PCMCIA).

Here are some notes on selected HP100LX/HP200LX Socket Services functions (all this information is available by calling the appropriate Socket Services Inquire functions):

Inquire Adapter

Number of Windows                                11
Number of Sockets                                1
Number of EDCs                                   0
Capabilities: Indicators                         0
Power Management                                 0
Data Bus Width                                   1
Status Change Interrupt                          1
SCI Software Sharable                            0
SCI Hardware Sharable                            0
SC IRQ Level                                     16 (NMI), (The correct IRQ level is 6; 
                                                            but the function returns 16)
Get/Set Adapter
Attributes:
Reduce Power Consumption                                             Preserved
Preserve State Information                                           Preserved
Enable Status Change Interrupt                                       Supported
Software Share SCI                                                   Ignored
Hardware Share SCI                                                   Ignored

Inquire Window for Window Numbers 0 through 8 (memory windows)
Capabilities:
Common Memory                                                        1
Attribute Memory                                                     1
I/O Space                                                            0
EISA I/O Mappable                                                    0
Separate Enable for EISA Common Space                                0
Assignable Sockets                                                   1
EISA A15 through A12                                                 0
Supported Access Speeds:
WAIT line monitoring                                                 1
100 ns                                                               1
150 ns                                                               0
200 ns                                                               1
250 ns                                                               0
300 ns                                                               1
600 ns                                                               1
Memory Window Characteristics Table:
Capabilities:
Programmable Base Address                                            0
Programmable Window Size                                             0
Window Disable/Enable Supported                                      1
Eight-bit Data Bus Supported                                         1
Sixteen-bit Data Bus Supported                                       0
Requires Base Address Alignment on Size Boundary                     0
Power of Two Size Granularity                                        0
Requires Card Offset Alignment on Size Boundary                      0
Paging Hardware Available                                            0
Paging Hardware Shared                                               0
Page Disable/Enable Supported                                        0
I/0 Window Characteristics Table                                     None

Window Number   Base Address   Window Size             Required Card Offset Alignment
0               D0 (D000)      4 (16K bytes)           4 (16K byte boundary)
1               D4 (D400)      4 (16K bytes)           4 (16K byte boundary)
2               D8 (D800)      4 (16K bytes)           4 (16K byte boundary)
3               DC (DC00)      4 (16K bytes)           4 (16K byte boundary)
4               E0 (E000)      4 (16K bytes)           4 (16K byte boundary)
5               E0 (E400)      4 (16K bytes)           4 (16K byte boundary)
6               E0 (E800)      4 (16K bytes)           4 (16K byte boundary)
7               E0 (EC00)      4 (16K bytes)           4 (16K byte boundary)
8               C0 (C000)      16 (64K bytes)          16 (64K byte boundary)

Inquire Window for Window Numbers 9 and 10 (I/O windows)
Capabilities
Common Memory                                          0
Attribute Memory                                       0
I/O Space                                              1
EISA I/O Mappable                                      0
Separate Enable for EISA Common Space                  0
Assignable Sockets                                     1
EISA A15 through A12                                   0
Supported Access Speeds:
WAIT line monitoring                                   1
100 ns                                                 0
150 ns                                                 0
200 ns                                                 1
250 ns                                                 0
300 ns                                                 1
600 ns                                                 1
Memory Window Characteristics Table: None
I/0 Window Characteristics Table:
Capabilities:
Programmable Base Address                              1
Programmable Window Size                               1
Window Disable/Enable Supported                        1
Eight-bit Data Bus Supported                           1
Sixteen-bit Data Bus Supported                         0
Requires Base Address Alignment on Size Boundary       0
Power of Two Size Granularity                          1
Minimum Base Address                                   0x0000
Maximum Base Address                                   0xFFFF
Minimum Window Size                                    1
Maximum Window Size                                    256
Required Window Size Granularity                       1

Inquire Socket
Capabilities:
Card Change                                            1
Card Lock                                              0
Insert Card                                            0
Eject Card                                             0
Hardware Indicators:
Busy Status                                            0
Write Protect Status                                   0
Battery Status                                         0
Card Lock Status                                       0
XIP Status                                             0
Socket Characteristics Table:
Supported Card Types:
Memory Card                                            1
I/O Card                                               1
Steerable IRQ Levels                                   3, 5, 6, 7
Additional Steerable IRQ Levels                        none
Power Management Table (two entries):
5.0 volts                                              Vcc, Vpp1, Vpp2
12.0 volts                                             Vpp1, Vpp2


Notes:

    20h - 21h      Interrupt controller
    22h            Hornet index register
    23h            Hornet data register
    28h            CPU power control
    29h            reserved                 
    2Ch            reserved
    2Dh            reserved                 
    40h - 43h      Programmable Interval Timer
    60h - 62h      Programmable Peripheral Interface
    300h - 307h    Possible test system parallel port
    308h - 30Fh    Possible test system UART            
    310h - 317h    Possible test system parallel port
    318h - 31Fh    Possible test system UART            
    348h - 34Fh    Possible test system UART
    358h - 35Fh    Possible test system UART
    3B0h - 3BFh    Display
    3D0h - 3DFh    Display
    3F8h - 3FFh    Built-in UART (COM1)