Getting an IBM AS/400 Midrange Computer on the Internet
justanotherelectronicsblog.com
justanotherelectronicsblog.com
Going from the CP/M world of dBASEII/FoxBase and CBASIC to IBM was strange and I remember thinking, "The money's better, but I look forward to unlearning all this some day." I did, and rejoined the ASCII world with no regrets. Except the pay. Did I mention the pay?
I did manage to save my company more than a year's worth of my salary once. Telephone calls were recorded on 6250BPI mag tapes and the ITT 1210 telephone switch dumped call information to the tapes twice a second to clear the queues and protect from data loss. You could see the tapes advancing in little spurts. This resulted in a dismal blocking factor since there is a physical ~1/2" leader per block, and they were required to archive the information for several years in a fireproof vault. The vault was full of these $250 tapes and they were on the verge of building an additional vault!
One day I was puttering around and noticed that the block factor was a major problem. I wrote a simple CL command to recopy and re-block the tapes to regroup the data into blocks 10x the size. After some very careful testing (my supervisor was very dubious at first) they were able to recopy their entire archive and recover 80% of the original tapes.
With regards to iSeries we have developers who have put in place more than a few REST services both with IBM code and Profound Logic code. IBM provides both custom web service programs (think collection of DLLs) and other simpler interfaces. The key is you can reuse a lot of existing code by putting a good web interface on the front of it and your customers would never know.
The number of large companies using the platform is quite high and includes many big names people would not expect as well as a certain major league sport. Overseas it seems more accepted to say you are on one.
Good names for iSeries development are Jon Paris and Scott Klement. See Scott's page at https://www.scottklement.com/
the standard language for coding, RPGLE has morphed through the years to where it is as free form as any other language while being 100% backwards compatible, the confusing part is you can mixed fixed format and free form stuff all at once. With ILE programming you can bind in C and JAVA too.
For the most part these hang on and get new deployment because of a combination of code that works every day and that business math while simple has to be sure. Throw in that the system is in effect a DB2 database with full support for SQL and more and its easy to see its longevity. Now if someone can convince IBM to not keep renaming it.
I also fondly remember that all our compiles had to be done by exiting the editing screens and separately scheduling a BATCH job for the compile, and then reading the output of the BATCH job to see if your PGM compiled successfully. If not, you'd have to read the JOB LOGS to see where you committed syntax errors. No debugging at runtime, no IDEs. You had to read your own code top to bottom, scatter a few PRINT statements around (also viewed in the JOB LOGS) to see if your PGM worked at all.
One of the many things that amazed me at that time (1997) was that AS/400 had a robust ODBC CLI for both Windows and OS/2 Warp. This allowed the pointy haired bosses to enjoy results of data warehouse projects directly from their Windows PCs using Microsoft Access (of all things). In Comic Sans fonts to boot!
EDIT: Oh, I forgot to mention - I still haven't seen documentation for systems, compilers and databases as useful, user-friendly and comprehensive as the manuals compiled, printed and bound by IBM. There was absolutely no need for Google.
I will never be ashamed of that beginning. Never.
Sounds like quite the programming adventure.
IBM designed IBM i as a "turnkey" operating system, requiring little or no on-site attention from IT staff during normal operation. For example, IBM i has a built-in DB2 database which does not require separate installation. Disks are multiply redundant, and can be replaced on line without interrupting work. System administration has been wizard-driven for years. This automatic self-care policy goes so far as to automatically schedule all common system maintenance, detect many failures, and even order spare parts and service automatically.
Another peculiar feature is that this system was one of the earliest to be object-based. Unlike traditional OSes like UNIX and Windows NT, there are no files, only objects of different types. It implemented one of the earliest-known systems for persistent objects. Further, the objects persist in very large, flat virtual memory, called a single-level store.[1]
That's because it's the last remnant of Atlantis.
https://people.cs.clemson.edu/~mark/fs.html
> The IBM Future System (FS) project was a design effort to succeed the IBM S/370 architecture that was adopted company wide in 1971. FS was based on a single-level store with automatic data management. The project is reputed to have cost more than $1B when it was cancelled in February 1975, but the single-level store idea was adopted by System/38, AS/400, and iSeries.
Single-level store is IBM's cutesy way of saying that there's no application-level distinction between disk and RAM: It's all data, applications access data (or don't, depending on a security model), and the OS handles persistence the same way it handles caching; that is, transparently.
Anyway, security was important to IBM, particularly the security to be free from people making clones of FS hardware. This had unfortunate effects on the systems's comprehensibility:
http://www.cap-lore.com/CapTheory/KK/FS.html
> Some suggest that this memo[0] was the beginning of the end of IBM’s Future System. The section of the memo with “security” in the heading, concerns keeping the architecture secret, from most of those working on the project. Quote:
>> Tight security prevents a potential thief from stealing a system design. But good communication is necessary to design a system that is worth stealing. The recent version of the RIPON architecture has been issued in 15 separate, registered confidential documents. A programmer who gets authorization to learn about the addressing structure has to demonstrate a separate need to know to learn the instruction set. The avowed aim of all this red tape is to prevent anyone from understanding the whole system; this goal has certainly been achieved.
[0] http://www.jfsowa.com/computer/memo125.htm
It evolved:
http://www.jfsowa.com/computer/
> In 1978, a scaled-down version of FS was announced as System/38. The greatest strength of HLS, AFS, and System/38 was a “one-level store”: a virtual memory that eliminated the distinction between RAM and files on disk drives. That made System/38 much easier to program than earlier computer systems or even most systems today. But the instruction set of System/38 was essentially System/370 with descriptors. The microcode of any 370 system could have been modified to support it, and programming for FS could have begun in 1971.
> As another option, John Cocke had designed a RISC machine, which eventually became the Power PC. In 1994, under the name AS/400, it ran a later version of the System/38 software. But as early as 1971, Cocke had persuaded the AFS group that a conventional computer with the HLS descriptors and a well-designed compiler could run the FS software. That computer could be a modified System/370, his RISC design, or both. The first FS machine could have been delivered as an “option” of the IBM 3033, which was announced in 1977 and delivered in 1978.
> An even better option was a high-speed System/370-compatible machine that Gene Amdahl had designed in 1969. Unfortunately, that project was canceled for political reasons. Therefore, Amdahl left IBM, got funding from Fujitsu, founded the Amdahl Corporation, and delivered his 470 system in 1975. Until the IBM 3033 in 1978, Amdahl’s machine was much faster than anything IBM was selling. With suitable microcode, a design by Cocke or Amdahl could have served as the high-end hardware for FS. System/38 would have been the entry-level version for smaller systems.
There are stories of parts showing up without customers even being aware any hardware had failed because they were so reliable.
AS/400 (or iSeries now) is so very different, but with many interesting concepts that did not end up getting used in mainstream desktop and now server computing, that it always seemed very compelling to play around with. Take the 128bit flat address space for example, that addresses both memory and storage.
I had a quick search but nothing useful turned up.
> 1994 >A new generation of AS/400 computers called the AS/400 >Advanced Series is introduced in >May, including the AS/400 Advanced System, AS/400 Advanced >Server and the AS/400 >Advanced Portable.
I have one. Even at the time it was considered a toy, too small to do anything serious. Another 9401 model called "Advanced Entry" was significantly more capable, and was the smallest anyone would actually buy. Documentation (last updated in 2013, about 20 years after the machine was current): http://www-01.ibm.com/common/ssi/printableversion.wss?docURL...
The portable was more of a sales and training tool, with a base 8 MB of RAM (maximum 16 MB in 1994, 56 MB in 1995) and billed as a single-user machine: https://www-01.ibm.com/common/ssi/cgi-bin/ssialias?appname=s...
IBM also claimed the portable could be used for "low cost kiosks." The starting price adjusted for inflation to 2019 was over $12k.
Oh, there are games!
http://www.jcrcmds.com/jcrgames2.html
Battleship, blackjack, minesweeper, video poker...
That site has a bunch of useful stuff on it, actually.
Zend also has PHP which you can install. And IBM has WebSphere which is based on an ancient version of Apache, you can actually serve web pages with it, and build your own web apps that interact with DB2. Fun stuff!
What you want to do is find a copy of IBM iAccess tools (iNavigator etc) and you can do some fun stuff with it.
http://www-01.ibm.com/support/docview.wss?uid=nas8N1017477&a...
The db based file system in OS400 fascinates me, though I have little experience with it.
https://medium.com/@ustunozgur/the-nosql-database-every-soft...
I haven't worked with specifics of storage in Smalltalk environments, but Xerox Interlisp didn't use text at all, nor files IIRC
This ain't strictly true; Linux and AIX will both run on it, at least as VMs/LPARs.
I also maintain a basic IDE for writing code on this OS (replacement for SEU, which was used in the article) and IBM also supply Rational Developer for i.
- https://github.com/WorksOfBarry/ILEditor - https://www.ibm.com/uk-en/marketplace/rational-developer-for...
The OS gets one or two large patches a year, but generally not many new 'features'. I've done and still do my fair share of RPG and ILE C on this system too.
Back in the late 90s, for some reason I had to attend work the last week of the year. There was barely anything to do, so I entertained myself doing an AS/400 Reversi game. It had a rudimentary AI inspired by the way the CPU played the same game on my cheap Ericsson phone: most squares had a value (3 for corners, 2 for notable squares and 1 for everything else), and it just summed up the values of the squares that would be captured with each possible move.
I was sure more games had to exist out there, but in retrospective, AS/400 were expensive to run, and I guess nobody wanted to be caught using it to make or play games.
A little backstory: I was taking classes at Brunswick Community College, working on an A.S. in Computer Programming. I knew the instructor who taught a lot of the programming classes, because I'd had him as an instructor on my previous go-round at BCC, when I took a couple of programming classes as electives.
Anyway, I signed up for a class titled something like "Survey of Operating Systems", where I had presumed I'd learn all about Windows, and maybe some kind of Unix (this was about 1996, so Linux wasn't ubiquitous yet). So I show up for the first day of class, and the instructor was like "Oh, Phil, I have something for you."
He proceeds to point me to a room with a huge behemoth of a machine, which appears to be some kind of computer, along with several boxes of tape reels, and a stack of bound manuals about as tall as myself. "Install the OS on that AS/400, and get it running and connected to the Internet, and you're done for the semester with an 'A'", he tells me.
It took a while... I mean, I was still pretty green in those days, and I'd never touched an AS/400 before. But with lots of trial and error, digging through manuals, and blood, sweat, and tears, I managed it. I guess he was impressed, and took a special interest in helping me find a job, as a little later he referred me to what would become my first job in the IT industry - as an AS/400 operator / Netware administrator for a little scientific glassware manufacturer in Wilmington.
There was no programming involved, but it paid better than working as a parts clerk at Advance Auto Parts, and I got to gasp work with computers professionally! Hey, that was a big deal for this young kid in 1996. Even better, it was an evening shift job, so I could still go to school by day, and then work at night.
I wound up spending a couple of years doing a lot of AS/400 related work while I was working my way through college. Never did any programming on them professionally though, even though I took two semesters of RPG programming in college.
Note: if you're wondering... the machine I had to work with was MUCH larger than the one in the story linked here. I'm not sure what the vintage of the thing was, but it was old enough that some company had decommissioned it and then donated it to the college I was at. So I'm pretty sure it was several generations older than the one shown in the article.
Also of note: the machine in question supported telnet, but as the article notes, AS/400's use a 5250 terminal by default, not something like the more familiar VT-100 (or related). Of course I didn't have a 5250 terminal emulator program available, but it turns out simple telnet client was enough to at least log in, even though it was hard to do some things since the AS/400 interface is so menu and command-key driven. I don't know if tn5250 existed back then or not, but I found it and started using it at some point.
We used 286 computers with windows and a terminal emulator that converted the control buttons to enter.
The server was shared with the states programmers as their test server so we had to wait our turn for compiling and running code. Could be a good 20 minutes to get the output of the program on the printer sometimes :-)
Tried getting a job as an RPG programmer in some companies in the area but all that was about to buy one ended up going with PC's instead. And the ones that had an AS/400 decommissioned it so didn't need programmers. But I did some work for the state, like fixing the y2k bug with birth year in the database :-)
I wasn't in charge of the software on that - mainly just helped with hooking it up to the local (Token Ring, IIRC) network in the building. I did however look after the backups on a VAX PDP/8 on another floor in the same building! :)
In the 90's, they replaced it with a bunch of networked PC's.
I called it the matrix to the past. Because of the black screen with green letters