Low Level Implementation Information
Native Pick Systems

Native Pick hosts are server systems running Pick as an operating system.  These system execute stand-alone, usually on Intel x86 processor based PCs.

PicLan-IP currently supports four different native Pick systems:

  • AP/Pro
  • Mentor PRO
  • Pick/64+
  • Sequoia PRO
All of these systems are 32-bit flat-model x86 systems supporting 190+ users, many megabytes of main memory, and many gigabytes of mass storage.

Modular Software has extensive experience writing low-level drivers for these systems.  The PicLan IPX-based networking product has been available for each of these systems since the initial introduction of each platform.  PicLan provides a low-level ethernet interface providing terminal I/O, file transfer, and printer sharing functions for native hosts.  The low-level PicLan driver is implemented in 'C', compiled with the Watcom C++ compiler, linked as a 32-bit flat-model executable, and then loaded into a locked memory region by tools developed by Modular Software.  This development environment provides for a robust run-time platform taking full advantage of the embedded nature of native Pick systems while still providing tools that allow large driver development.

The driver style of the PicLan driver is best described as a state machine.  A state machine is a driver design  where a single driver thread swaps between different tasks by saving it's state to a local storage area.  This allows the driver to timeslice it's internal operation without requiring operating system support for these operations.  Implementing a driver as a state machine is by far the most efficient coding mechanism for this type of project.  It also lends itself to a completely event-driven design that further enhanced system performance and lower driver overhead.

The PicLan IPX driver has proven itself in over 5000 field installations as a very fast and reliable ethernet interface for native Pick hosts.  Both benchmark testing and field experience have never been able to demonstrate any environment where the network driver was not up to the task.  In all cases, the drivers performance was strictly limited by the ability of the underlying host to produce data.  Even with 256 active connections, a single-processor Pentium host is still not limited by network performance, but instead by the performance of user Pick application code.

PicLan-IP builds on the experience of the PicLan IPX product.  PicLan-IP works cooperatively with the PicLan ethernet driver and IPX protocol stacks to add full TCP/IP functionality to native Pick hosts.  The design of the PicLan-IP TCP/IP protocol stacks are built using the same event-driven state machine that PicLan IPX functions use.  While the level of complexity of TCP/IP is easily an order of magnitude greater than it IPX, the 'C' environment allows for the added code complexity without difficulty.

The design of the PicLan-IP TCP/IP protocol stacks are such that you can configure the maximum number of connection handles that are allocated. Small systems default at 200 concurrent network connections.  This configuration uses about 2 megabytes of system memory for driver code and buffer space.  If you are running a large, public web server, you may want to increase this amount.  The maximum supported number of TCP/IP connections is just over 4000 requiring about 34 megabytes of driver and buffer memory.

The TCP/IP stacks in PicLan-IP have all of the required support needed to run a TCP/IP server.  This includes support for IP, TCP, UDP, ARP, and ICMP.  While only a single ethernet interface is supported, you can configure a single host to respond to up to 50 IP addresses.  This allows a single native Pick host to support virtual web servers with 50 sets of unique web content.  Static IP route tables are also supported with up to 100 manual route table entries.

High-level PicLan-IP functions are really no different on native hosts than on any other PicLan-IP host and actually share 100% of their Pick/BASIC source code.  To be fair, the source code is conditionally compiled and massively macro expanded, but this shared environment is very important to Modular Software's ability to maintain PicLan-IP across such as broad array of Pick platforms.  It is in this high-level Pick/BASIC code where all of the TCP/IP services are implemented.  Native hosts support all of the PicLan-IP services including HTTP, SMTP, POP3, and client APIs.  In addition, PicLan-IP supports inbound TELNET with native Pick hosts.  This allows native system access from standard TELNET clients including access over the internet, local PC and MAC access, and terminal server access.

This combination of efficient and high-performance low-level TCP/IP protocol support with versatile high-level service support allow PicLan-IP to literally bring native hosts into the 21st century.  You never know if the web site you just looked your college class schedule up on was actually hosted on a good-old-fashioned native Pick system.