KIPPER BASIC

COMMAND SUMMARY

Command Descrption Parameters Example
IPCFG Display the current IP stack configuration none
  • IPCFG
  • MAC Set the last 3 bytes of the MAC address. Top 3 bytes will always be "00:80:10".
    This command also resets the whole IP stack, so new IP address will need to be assigned (via MYIP or DHCP) after calling MAC
    3 byte string
  • MAC "FOO" - MAC will become 00:80:10:46:4F:4F (in PETSCII, $46 is 'F' and $4F is 'O')
  • DHCP Use DHCP to assign IP address, netmask, default gateway and DNS server none
  • DHCP
  • MYIP Assign a new IP address
  • IP address (string)
  • MYIP"10.1.1.2"
  • NETMASK Assign a new netmask
  • netmask (string)
  • NETMASK"255.255.255.0"
  • GATEWAY Assign a new default gateway (router to send non-local traffic to)
  • gateway IP address (string)
  • GATEWAY"10.1.1.1"
  • DNS Specify the DNS server to be used for resolving hostnames
  • DNS server IP address (string)
  • DNS"10.1.1.1"
  • TFTP Specify the TFTP server that will be accessed by TFPUT and TFGET.
  • TFTP server IP address or hostname (string)
  • TFTP"10.1.1.5"
  • TFTP"JAMTRONIX.COM"
  • PING Sends a number of ICMP echo requests to the specified host. For each packet sent, if a response is received a "." is displayed, if an error occurs (including a timeout) then a "!" is displayed.
  • hostname or IP ddress (string)
  • [optional] number of PING request to be sent (1..255) - default is 3
  • PING"JAMTRONIX.COM"
  • PING"10.1.1.1",10
  • NETCAT Open a TCP connection to a remote server. Any data received on the connection will be displayed on screen, any keypress will be sent to the remote server. To exit, hit RUN/STOP.

    The optional mode paramater determines whether the connection should be in PETSCII 'char at a time' mode, where every keypress is sent 'as is' to the remote site, or ASCII 'line mode', which allows a line to be edited and is sent (with a CR/LF at the end) only when the RETURN key is pressed. In this mode, data is converted between the PETSCII character set and standard ASCII - you will need to shift to the "lower case" char set for this to display properly.

    The PETSCII mode is appropriate for connecting to e.g. a PETSCII BBS. The ASCII mode is appropriate for connecting to a server running a "network ASCII" derived protocol, e.g. SMTP or HTTP. '
  • hostname or IP ddress (string)
  • port number (1..65535)
  • [optional] mode:
    • 0=PETSCII (default)
    • 1=ASCII
  • NETCAT"JAMTRONIX.COM",6464
  • NETCAT"10.1.1.1",25,1
  • TFPUT Upload a file to a TFTP server. By default, TFPUT will use the broadcast address (255.255.255.255), meaning any TFTP server on the LAN will respond. To send a file to a specific TFTP server (including one not on the local network), specify the destination TFTP server with the "TFTP" command prior to calling TFPUT. The filename specified will be looked for on whichever drive was last accessed.
  • filename (string)
  • TFPUT"KIPPERBAS.PRG"
  • TFGET Download a file from a TFTP server. By default, TFPUT will use the broadcast address (255.255.255.255), meaning any TFTP server on the LAN will respond. To download a file from a specific TFTP server (including one not on the local network), specify the destination TFTP server with the "TFTP" command prior to calling TFGET. The file will be written (as a PRG file) to whichever drive was last accessed.
  • filename (string)
  • TFGET"KIPPERBAS.PRG"
  • TCPCONNECT Open a TCP connection to a remote server.
  • hostname or IP address (string)
  • port number (1..65535)
  • TCPCONNECT"JAMTRONIX.COM",70
  • TCPCONNECT"10.1.1.1",80
  • TCPLISTEN Wait for an inbound TCP connection from a remote client. This is a blocking command, i.e. the BASIC program will not continue executing until either an inbound connection is made, or the program is terminated by pressing RUN/STOP
  • port number (1..65535)
  • TCPLISTEN 80
  • POLL Check for network traffic. If data has arrived on a previously opened TCP connection, then the first 255 bytes of data will be set into string variable IN$. Also, IP% is a pointer to the first byte of data received, and IL% will contain the length of data received (which can be a maximum of 1500 bytes). If no data has arrived since the last POLL, then IN$ will be an empty string, IL% will be 0, but IP% will still point to the buffer where inbound data is stored. Integer variables CO% and ER% are also set to indicate current connection state and error conditions (if any). none POLL
    TCPSEND Send a string (up to 255 bytes) over a previously opened connection.Integer variables CO% and ER% ae set to indicate current connection state and any error condition which may occur during the sending of the string. It is possible for data to arrive during the transmission of the string, in which case IN$, IP% and IL% will be set as per description in POLL
  • data (string)
  • TCPSEND"HELLO "+"WORLD"
  • TCPBLAT Send a file (of any length) over a previously opened connection. The file will be looked for on the current 'default' device, i.e. which ever drive was last accessed. Integer variables CO% and ER% ae aset to indicate current connection state and any error condition which may occur during the sending of the file. NB - in the current implementation of Kipper BASIC, it is possible for data to arrive during a call to TCPSEND, which may not be passed through to the BASIC program.
  • filename (string)
  • TCPBLAT"GOPHERMAP.TXT"
  • Magic Variables

    IN$ IP% and IL% are set on each call to POLL or TCPSEND

    IN$

    Will contain up to 255 bytes of data (the maximum length of a string in BASIC)

    IP%

    A pointer to a buffer where the most recent inbound data is stored.

    IL%

    The length of data stored in the buffer specified by IP%, maximum of 1500 bytes.

    The following BASIC variables are set by the TCPxxxx commands and POLL.

    CO%

  • CO%=1 means there is a current TCP connection
  • CO%=0 means there is no current TCP connection (either one has never been opened, or else it has been closed)

    ER%

    ER% is set to indicate any error occuring inside the ip65 TCP/IP stack that Kipper BASIC is built on top of. Possible values:
    ERROR CODE
    HEX / DEC
    DESCRIPTION
    $80 / 128PORT IN USE
    $81 / 129TIMEOUT ON RECEIVE
    $82 / 130TRANSMIT FAILED
    $83 / 131TRANSMISSION REJECTED BY PEER
    $84 / 132INPUT TOO LARGE
    $85 / 133DEVICE FAILURE
    $86 / 134ABORTED BY USER
    $87 / 135LISTENER NOT AVAILABLE
    $88 / 136NO SUCH LISTENER
    $89 / 137CONNECTION RESET BY PEER
    $8A / 138CONNECTION CLOSED
    $8B / 139TOO MANY ERRORS
    $90 / 140FILE ACCESS FAILURE
    $A0 / 160MALFORMED URL
    $A1 / 161DNS LOOKUP FAILED
    $FE / 254OPTION NOT SUPPORTED
    $FF / 255FUNCTION NOT SUPPORTED

    STARTUP

    If you try and load Kipper BASIC twice (or some other BASIC extender before Kipper BASIC) you will get an 'insufficient memory' error.

    After Kipper BASIC has been installed, it will attempt to load (and run) a file (from whatever device Kipper BASIC was loaded from) called "AUTOEXEC.BAS". If this file does not exist, then Kipper BASIC will exit with 'FILE NOT FOUND ERROR IN 10". This error can be ignored - you can load any file you want from then, or type in a new one, or even use the commands in interactive mode.

    For example, try:
    DHCP:NETCAT"JAMTRONIX.COM",6464