Table of Contents

Installing AS/400 QDLS applications (Windows edition)

These instructions work on a whitebox running Windows 98 SE with 160MB of RAM, a 333MHz Celeron, and a 32GB IDEDOM. This is probably comfortable as a local development environment for most people. If other Windows versions are tested and working I will make note of it. Otherwise, assume only 9x is supported.

ADTS (VARPG+CODE/400)

Please note that these instructions work to install ADTS, but the applications currently crash for me. I am still in the process of troubleshooting this issue to see if it is on my end, just be aware you may have the same problems.

ADTS (Application Developer Toolset) is distributed for OS/2 and Windows as part of the typical OS/400 V4R4 demopkg install. Other releases probably also have it, I'm not sure. ADTS in V4R4 comprises VARPG (VisualAge RPG, for writing Windows and OS/2 applications that interface with OS/400) and CODE/400 (a multi-format editor suite with syntax checking for DDS, RPGLE, etc). Pretty useful, since SEU can be a bit of a pain.

ADTS is located on the IFS in the /QDLS directory by default, but simply pulling the necessary directories down and installing will not work. The application expects to be installed either over SMB (via OS/400 NetServer) or from a specific workstation CD. In my experience NetServer (and the 100MB TCP/IP experience in general) is unreliable, so I wouldn't recommend trying from the IFS share. It is also possible to burn a CD containing these directories and mount it at I: if your target machine has a CD reader.

You will need the following directories:

The other versions are for OS/2, I have not tried installing those yet. I found that FTPing each directory one at a time was the easiest way to get everything without issues. Put them either in a shared folder on a Windows 10/11 host or a Samba share on a *nix machine. If you go the Samba route, I made the following temporary changes to my server config to support the Win9x client:

[global]
...
# allow execution of binaries from smb shares
acl allow execute always = True
client lanman auth = yes
lanman auth = yes
client ntlmv2 auth = no
ntlm auth = yes
client min protocol = LANMAN1
server min protocol = LANMAN1
client ipc min protocol = LANMAN1

[qdls]
  path = /data/smb/qdls
  public = no
  writable  = no
  browsable  = yes
  read only = yes
  guest ok = no
  force user = hush
  create mask = 0755
  directory mask = 0755

Update as needed to match your environment, restart Samba, then mount the share on I: on the Windows host. If you can see everything, run I:\QADTSWIN\Setup.exe. This will install both the ADTS supporting bits as well as VARPG and CODE/400, then reboot your machine. Once you log back in you will be able to launch ADTS applications.

Connecting to your AS/400

While this installation works, it will unfortunately not allow us to run STRCODE on the AS/400 automatically due to a missing file, W32CPIC.DLL. This file is not present in installation media for either ADTS or CA/400, and I have been unable to locate it elsewhere. We can still connect to the AS/400 and work with our code without bringing it to our PC, though. Be aware that if you are running a firewall between your AS/400 and PC you will need to allow an exception for tcp/4200 on the PC. I am not sure if more is required but this is the port for the “CODE Daemon” which receives communication from the AS/400.

First, go to Start → Programs → VisualAge… → Define TCPIP Server List and define your AS/400 host. Next, you'll need to configure the login from the Define Server Logon utility in the same folder. This is enough to ensure a connection. Finally, starting TCPIP Communication Server on the PC will open it to communication from the AS/400.

On the AS/400 side, you will need to run STRCODE to initiate a session. The SERVER value must match the one you configured on the PC or it will show up under a different name in CODE. You can F4 prompt here, or use this format:

STRCODE SERVER(AVEL) RMTLOCNAME(10.5.5.5) CMNTYPE(*TCPIP)

SERVER is the name of the AS/400 system, RMTLOCNAME is your workstation IP.

If you use the same workstation regularly and it has a static IP, you can change the default parameters for the command and just run STRCODE:

CHGCMDDFT CMD(STRCODE) NEWDFT('SERVER(AVEL) RMTLOCNAME(''10.5.5.5'') CMNTYPE(*TCPIP)')

The following CL code from MIDRANGE-L will purportedly update these values depending on the system you have logged in from (if you are using the same PC for a 5250 session), but I have not tried it. YMMV.

PGM
DCL VAR(&BIN4)    TYPE(*CHAR) LEN(4)
DCL VAR(&RCV)     TYPE(*CHAR) LEN(893)
DCL VAR(&RCVLEN)  TYPE(*CHAR) LEN(4)
DCL VAR(&RCVLEND) TYPE(*DEC)  LEN(9)
DCL VAR(&ERR)     TYPE(*CHAR) LEN(100)
DCL VAR(&DEC8)    TYPE(*DEC)  LEN(8 0)
DCL VAR(&DEVD)    TYPE(*CHAR) LEN(10)
DCL VAR(&FRMDEV)  TYPE(*CHAR) LEN(8)  VALUE('DEVD0600')
DCL VAR(&IP)      TYPE(*CHAR) LEN(15)
DCL VAR(&PASTHR)  TYPE(*CHAR) LEN(1)

  CHGVAR     VAR(&RCVLEND) VALUE(893)
  CHGVAR     VAR(%BIN(&RCVLEN)) VALUE(&RCVLEND)
  RTVJOBA    JOB(&DEVD)

  CHGVAR     VAR(%BINARY(&BIN4)) VALUE(&DEC8)

  CALL       PGM(QDCRDEVD) PARM(&RCV &RCVLEN &FRMDEV +
                          &DEVD &ERR)

  CHGVAR     VAR(&PASTHR) VALUE(%SST(&RCV 831 1))
  CHGVAR     VAR(&IP)     VALUE(%SST(&RCV 878 15))
             STRCODE    SERVER(HMTEST) RMTLOCNAME(&IP) CMNTYPE(*TCPIP)
ENDPGM

Client Access/400 Express

Client Access/400 is a suite of Windows applications that help with managing AS/400s. Sometimes it is easier to log in through CA/400 and make a change than it is to dig through menus or documentation to find what you need.

CA/400 is located on your V4R4 system's IFS under /QDLS/QCA400. The directory can be copied to a Windows machine and installed as normal, but I have not been able to get it installed under Windows 10- the installer freezes on “copying files”.