Introduction
AnzioWin and Anzio Lite contain the ability to be controlled through host scripting. These are small shell scripts or program blocks that can issue and query Anzio from the host end of the connection. This document rdescribes how this works.
We have many examples on our web site and in various whitepapers. Check out our support pages at Anzio.Com
Issuing commands from the host
One of the big benefits of Anzio over other terminal emulation and telnet products is its ability to respond to host commands issued for Anzio.
Commands specifically for Anzio are sent through the Anzio session by bracketing the commands in a hex-1C (octal 34) and hex-1D (octal 35). Your host program or shell script simply needs to be able to display the string to the screen. Anzio will intercept the information and interpret it.
An example of this is included in the following piece of a script which simply plays a wave file and displays a message box to notify the user that he/she has encountered an error while running some script.
printf "\034receive quiet \035 "
printf "\034playsound c:\windows\msremind.wav \035"
printf "\034message Error on file grp343.dat on $HOSTNAME \035"
printf "\034receive quiet off \035"
PC file names from the host
Many host commands take arguments that may be difficult to handle directly on the UNIX and Linux operating systems (this is actually an issue with the shell or scripting language, not the operating system itself). A good example of this is handling back-slashes for PC file names within commands destined for AnzioWin from the host. A typical AnzioWin host command might look like the following BASH script:
# First set the default printer type and a file name including the year and date
echo -e '\034printer "pdf://c:\\\temp\\\${ANZ_DATE_YY}_${ANZ_DATE_MM}.pdf" \$035"
# Now print the job
# ...
In AnzioWin version 16.1 or higher you are able to replace the back-slashes with a single forward-slash and AnzioWin will handle it correctly on the PC end.
Likewise, on many UNIX / Linux operating systems, you can use the /usr/bin/ version of printf and separate the string into a different variable surrounded by single-quotes. This prevents back-slashes and other variables, such as dollar-signs, from being interpreted by the printf command. To do this, try something similar to the following:
/usr/bin/printf "\034%s\035" 'printer pdf://c:\temp\${ANZ_DATE_YY}.pdf'
For more information on assigning and using replacement variables as demonstrated in the above example, see other knowledgebase articles such as
Available commands to pass AnzioWin
Below is a partial list of available commands that can be passed to Anzio from a host program. Note that some of these commands are not available in the Anzio Lite version. Also note that some may not be available except when your connection is serial or when it is TCP/IP.
Operator Preference Items | Description | Win | Lite |
BEEP [ON] | BEEP SLOW | BEEP OFF | Tells Anzio whether to beep or not | √ | |
BEEP IDLE [ON] | BEEP IDLE OFF | Beep when idle | √ | |
CURSOR [BLINK] [ON] | CURSOR [BLINK] OFF | Allows non-blinking cursor | √ | |
FONT <size> | FONT LARGER | FONT SMALLER | Sets screen font size | √ | |
GAUGE [ON] | GAUGE OFF | Gauge line on bottom of screen | √ | |
JUMP OFF | JUMP MEDIUM | JUMP FAST | Set jump scroll | √ | |
PITCH <n> | Set pitch for beeps | √ | √ |
PRINTFONT <size> | Sets printer font size | √ | |
PRINTLOW [ON] | PRINTLOW OFF | Sets low-level print | √ | √ |
SCREENMODE <string> | Hardware screen modes | √ | √ |
SCREENMODE/S | Report screen info to host | √ | |
STATUS [LINE] [ON] | STATUS [LINE] OFF | Status line on / off | √ | √ |
TITLE <string> | Sets window title | √ | √ |
Communications Parameters | Description | Win | Lite |
7E1, 8N1, ... | Shortcut to set data bit, parity, stop bit | √ | √ |
AUTO-LF [ON] | AUTO-LF OFF | Auto-linefeed | √ | √ |
BACKSPACE 8 | BACKSPACE 127 | Configure backspace key | √ | √ |
BAUD <n> | Set baud rate | √ | √ |
BREAK | Send a break | √ | √ |
CHARSET <name> | Set character set translation | √ | √ |
COMMTYPE SERIAL | COMMTYPE WINSOCK | Set communications to serial or winsock | √ | |
DATA [BITS] 5 | DATA [BITS] 6 | DATA [BITS] 7 | DATA [BITS] 8 | Set data bits | √ | √ |
DELAY <n> | Delay between characters | √ | √ |
DELAY/S | Reports DELAY settings | √ | √ |
FULL [DUP] | HALF [DUP] | Set duplex | √ | √ |
IGNULL [ON] | IGNULL OFF | Ignore null characters | √ | √ |
IMOS | Set host to IMOS operating system | √ | √ |
IRQ <n> | Set interrupt vector | ||
IRX | Set host to IRX | √ | √ |
ITX | Set host to ITX | √ | √ |
LINE [DELAY] <n> | Set delay on line turnaround | √ | √ |
PARITY EVEN | PARITY ODD | PARITY OFF | Set parity | √ | √ |
PORT <n> | Set communications port | √ | √ |
RESET | Reset terminal | √ | √ |
RMCOS | Set host to RMCOS | √ | √ |
RTS-MODE 0 | RTS-MODE 1 | RTS-MODE 2 | For use with odd comm equipment | ||
STOP [BITS] 1 | STOP [BITS] 1.5 | STOP [BITS] 2 | Set stop bits | √ | √ |
SYNC [ON] | SYNC OFF | SYNC FAST | Remove screen "snow" in old video cards | ||
TAB <i> <j> <k> ... | Set tab handling | √ | √ |
TERM <termtype> | Set terminal emulation type | √ | √ |
TERMNAME <name> | Set term type to report to host | √ | √ |
TTY | Set host to TTY | √ | √ |
UNIX | Set host to UNIX | √ | √ |
VRX | Set host to VRX | √ | √ |
File Transfer | Description | Win | Lite |
CAPTURE [ON] | CAPTURE LONG | CAPTURE OFF | Capture data coming to screen | √ | √ |
CLOSEI | Close input file | √ | |
CLOSEI/S | Close input file and report to host | √ | |
CLOSEO | Close output file | √ | |
CLOSEO/S | Close output file and report to host | √ | |
DELETE <filename> | Delete file | √ | |
DELETE/N <filename> | Delete file with no errors | √ | |
DELETE/S <filename> | Delete file and report status to host | √ | |
FIND/S <filespec> | Find file and report first file name to host | √ | |
FINDNEXT/S | Causes ANZIO to report next file name to host | √ | |
FTPGET | Get a file from the host using the ftp protocol | √ | |
FTPGET/S | Get a file from the current host using the ftp protocol and return a status to the host | √ | |
FTPPUT | Send a file to the host using the ftp protocol. | √ | |
FTPPUT/S | Send a file to the current host using the ftp protocol and return a status to the host | √ | |
KCOMMAND <command> [<parameters>] | Send kermit command | √ | |
KEEP [<x1> <x2> <y1> <y2>] | Copy part of screen to file | √ | |
KEEP/N [<x1> <x2> <y1> <y2>] | Copy part of screen to file w/out terminators | √ | |
KRECEIVE [<unixfilespec> [AS <filespec>]] | Receive a file with kermit | √ | |
KSEND [<filespec> [AS <unixfilespec>]] | Send a file with kermit | √ | |
OPENI <filename> | Open an input file | √ | |
OPENI/S <filename> | Open an input file and report to host | √ | |
OPENO <filename> | Open an output file | √ | |
OPENO/N <filename> | Open an output file even if it exists | √ | |
OPENO/S <filename> | Open an output file and report to host | √ | |
PICK <x1> <x2> <y1> <y2> | Pick screen columns for spreadsheet | √ | |
PURGE | Clear file transfer buffer | √ | √ |
RECEIVE CODED | For special file transfers | √ | |
RECEIVE QUIET [ON] | RECEIVE QUIET OFF | Don't display simple file transfers | √ | |
RETRANSMIT | Retransmit last element | √ | |
TIMEOUT <n> | For use with UFT | √ | |
TRANSMIT [ON] | TRANSMIT OFF | Simple file upload | √ | |
ZRECEIVE <filename> | Turn on Zmodem receive | √ | √ |
ZSEND [-a] <filename> | Send a file by Zmodem | √ | √ |
XN | Send next record | √ |
Local Processing | Description | Win | Lite |
BOX <x1> <x2> <y1> <y2> | Draw a box on the screen | √ | |
CALL <macro> | Macro key subroutine | √ | √ |
CD [<unit:>]<dirname> | Change working directory on PC | √ | |
CHOOSEPRINT | Opens printer dialog box | √ | |
CLIP [<x1> <x2> <y1> <y2>] | Copy area to clipboard | √ | |
COPY <filename> <newfile> | Copy a file | √ | |
COPY/S <filename> <newfile> | Copy a file and report to host | √ | |
DATE | Send date to host | √ | √ |
DEFAULTS | Save default settings | √ | √ |
DEFINE <x> <text> | Define a macro key | √ | |
DELETE <filename> | Delete file on the PC | √ | |
DELETE/N <filename> | Delete file on the PC and ignore "not found" | √ | |
DELETE/S <filename> | Delete file on the PC and report to host | √ | |
DIAL <string> [<wait> [<retries>]] | Dial a modem number | √ | √ |
DIR [<pathname>] | List PC directory | √ | |
DIR/S [<pathname>] | List PC directory and report to host | √ | |
DROPOUT | Exit from Anzio without resetting port | √ | |
EJECT | Eject a printer page | √ | √ |
END | Quit | √ | √ |
ENV/S <variable> | Send DOS environment variable to host | √ | √ |
FILL <x1> <x2> <y1> <y2> <char> | Fill area of screen | √ | |
FLUSH | Release a print job | √ | √ |
FLUSHTIMER <n> | Set timed release of print job | √ | √ |
INVOKE <macro> | Start a macro key | √ | √ |
LAUNCH <program> [<parameters>] | Start another program in Windows | √ | |
LOG [<unit:%gt;]<dirname> | Change current working directory on PC | √ | |
MENUBAR <x1> <x2> <y1> <y2> <x3> <x4> <off> <len> [<cols>] | Create an onscreen menu | √ | |
MERGE <filename> | Merge in an auxiliary key file | √ | |
MESSAGE <string> | Displays a message box | √ | √ |
MKDIR <dirname> | Make a PC directory | √ | |
MKDIR/S <dirname> | Make a PC directory and report to host | √ | |
MODE-132 <xx> | Set screen mode for 132 by 25 | ||
PAN <n> | PAN LEFT | PAN RIGHT | Move right/left in virtual screen | ||
PASTE | Paste Windows clipboard text | √ | |
PLAYSOUND <filename> | Plays a WAV file | √ | |
Print the current screen | √ | √ | |
PRINT <x1> <x2> <y1> <y2> | Print all or part of screen | √ | √ |
PRINT/N <x1> <x2> <y1> <y2> | Print all or part of screen with CRLF | √ | √ |
PRINTER <printername> | Which printer to use | √ | √ |
PRINTER-SETUP [<text>] | Configure PC printer | √ | √ |
PRINTFILE <filename> | Print a PC text file | √ | √ |
READ <filename> | Read a key file | √ | √ |
RENAME <filename> <newfile> | Rename a PC file | √ | √ |
RUN [<program> [<parameters>]] | Shell out to DOS | √ | |
RUN/N [<program> [<parameters>]] | Shell out to DOS with no exit keystroke | √ | |
SAVE [<filename>] | Save keys file | √ | √ |
SCROLL [ON] | SCROLL OFF | Save erased data | √ | √ |
SEND <x1> <x2> <y1> <y2> | Transmit part of screen to host | √ | √ |
SETCOLOR <n> | SETCOLOR NORMAL | Reset current color | √ | √ |
SLEEP <hh> <mm> <ss> | Wait until a certain time | √ | √ |
TIME | Send time to host | √ | √ |
TYPE <filename> | Show a PC file on screen | √ | √ |
VERSION | What version of Anzio? | √ | √ |
VERSION/S | Send host the Anzio version | √ | √ |
WAIT <n> | Wait a specified time | √ | √ |
WAITFOR <string> [<timeout>] | Wait for specific text from host | √ | √ |
WIDTH 132 | WIDTH 80 | Set virtual screen size | √ | √ |
WINDOW <x1> <x2> <y1> <y2> [FILL] [BOX | DOUBLE] | Open a Window on screen | √ | |
WINDOWCLOSE | Close the onscreen window | √ |
These lists are not complete (see the manual for a complete listing). However, there is enough here to get you started. If you have questions about a specific command, email us.
Some examples
Initiating A Passthrough Print
If you are unfamiliar with how passthrough print works, we would suggest you read our short document of A Guide To Anzio Passthrough Printing before setting up scripts for this type of printing. Initiating a passthrough print job at the host end is as simple as sending the correct terminal codes (assuming that your terminfo file for the particular terminal type you are using has had the mc5 and mc4 codes defined). The script printpt.sh demonstrates this: printpt.sh
clear
printf "Rasmussen Software, Inc. Passthrough Print with AnzioWin\n"
printf " File To Print: $1 \n"
printf "\034receive quiet\035"
tput mc5
cat $1
tput mc4
printf "\034receive quiet off\035"
For a more advanced approach, download our PassPrt script. This script takes into consideration missing TERM variables (terminal type) and when the terminal type being used does not have passthrough printing defined in the TERMCAP or TERMINFO file.
Sending Files Via A Simple Transfer
AnzioWin will allow for a simple file transfer. This method does no error checking or encoding of characters, and hence assumes that the file is normal text-only. The script getsmpl.sh and putsmpl.sh shows the file transfers in both directions:
getsmpl.sh
clear
printf "Rasmussen Software, Inc. Simple ASCII Receive Thru AnzioWin \n"
printf " Transfer File: $1 from c:\\\temp \n"
printf "\034log c:\\\temp \035 \n"
printf "\034openi $1 \035"
printf "\034receive quiet off\035"
printf "\n "
printf " Do Shft-Ctrl-F and enter 'transmit ' \n"
printf " At the end of the transfer, press DELETE to continue.\n"
cat > $1
printf "\034transmit off \035"
printf "\034closei\035"
putsmpl.sh
clear
printf "Rasmussen Software, Inc. Simple ASCII Send Thru AnzioWin\n"
printf " Transfer File: $1 into c:\\\temp \n"
printf "\034log c:\\\temp \035 \n"
printf "\034receive quiet\035"
printf "\034openo/n $1 \035"
printf "\034capture\035"
cat $1
printf "\034capture off\035"
printf "\034closeo \035"
Transfer Files Via ZModem
File transfer via the ZModem protocol is handled similar to a simple file transfer. The scripts getzm.sh and putzm.sh show how it is done (the assumption is that sz and rz are available on your host):
getzm.sh
clear
printf "Rasmussen Software, Inc. ZModem Receive thru AnzioWin\n"
printf " Transfer File: $1 from c:\\\temp \n"
printf "\034log c:\\\temp \035"
printf "\034zsend -qa $1\035"
putzm.sh
clear
printf "Rasmussen Software, Inc. Zmodem Send Thru AnzioWin\n"
printf " Transfer File: $1 into c:\\\temp \n"
printf "\034log c:\\\temp \035"
sz -a $1
- Anzio
- Interoperation with the host system
Related Topics
- Scripting AnzioWin from Perl
- Scripting with Microsoft Script Control in AnzioWin
- Using Variables in AnzioWin
- File Naming Options in AnzioWin