IBM/System 3/RPGII

Fra DDHFwiki
< IBM‎ | System 3
Spring til navigationSpring til søgning

RPGII (Report Program Generator) var det mest anvendt programmeringssprog til IBM/System 3

Sproget stammede oprindelig fra IBM 1401 og senere fra den berygtede System/360 model 20 (der ikke var en "rigtig" System/360)

RPG lever fortsat (på linie med COBOL) idet det var/er primært programmeringssprog på S/32, S/34, S/36 og S/38 samt as/400 (iSystems))

Beskrivelse fra Wikipedia

RPG debugging template

RPG anvender et antal formularer i modsætning til andre sprog der er "frit format":

Control Card and File Description (H & F)
Extension and Line Counter (E & L)
Input Specification (I)
Calculation Specification (C)
Output Specification (O)

Yderligere info: manual (34,5MB)

Et par simple eksempler:

Kopier hulkort til disk-file
Print disk-file

Jeg har gennem tiderne lavet et Master Mind program på forskellige platforme.
Computeren skal "gætte" den kombination af farvede pinde du tænker på.
Første version var på en System/3 model 6 hvor de mulige træk (2401 stk.) var gemt i en disk-file.
Senere kom en version hvor trækkende blev genereret hen ad vejen i loops.
På en System/32 (der emulerede System/3 instruktioner i software) kunne et træk tage op til 45 minutter!
Den aktuelle version som vises her er "back-portet" fra System/32-versionen og afviklet på den emulater der kan downloades fra Henk Stegemans web-site: http://www.ibmsystem3.nl.
Her kører det MEGET hurtigere.
Henk har også kørr programmet på hans rigtige System/3 Model 10.
Han oplyser at der er lange perioder med 100% CPU-aktivitet.
Senere har jeg også lavet basic-versiner til micro-computere og IBM-PC.
Mest interessant var dog en java-version som jeg lavede til min Nokia mobil-telefon.
Den svarer øjeblikkelig! Så der er ingen tvivl om at den rå cpu-kraft i nutidens mobil-telefoner overstiger væsentligt hvad vi havde at gøre godt med i 70'erne.

Master Mind compilerings liste
(Læg iøvrigt mærke til at programmet kun fylder 4.745 bytes - i dag kan man dårligt lave et program på 4MB!)

Eksempel med forklaring


Tilføjet af Nico de Jong, oktober 2011.


RPG/II var ikke begrænset til System 3 o.l., jeg har selv brugt den på IBM/360 og /370, da den i mange tilfælde var nemmere at have med at gøre (mindre skrivearbejde) end f.eks. Cobol. Sproget var meget brugt til simple udtræk, lønberegning, og andre "mindre" kontoropgaver.

Jeg kan huske et tilfælde hvor RPG/II absolut blev misbrugt. Det var hos Brødrene Dahl A/S, hvor min chef brugte det til at gen-beregne prisen uden moms ud fra salgsprisen incl. moms. Når salgsprisen idag er 125 kr incl. moms, er den 100 kr uden moms, dvs 80%, ergo salgspris * 0,8 = nettopris. Det gik også fint i hine dage, indtil der kom en momsændring fra 15 til 18%, da man så her skal skrive salgspris * 0,84746..... = nettopris. Problemet i denne beregning er, at RPG/II kun kunne regne med max 5 decimaler. Resultatet : der var altid fejl i momsen, og momsregnskabet kom aldrig til at stemme, hvilket ikke var populært hos regnskabschefen.

RPG/II har også været brugt i moderne dage. I forbindelse med mediers inputkontrol i Told & Skats konverteringssystem, var der behov for et system der kunne finde fejl i.f.m. indlæsningen, så man ikke risikerede at fejlmedier blev sendt videre til Bull maskinen. Problemet med konverteringssoftwaren er imidlertid at man læser 1 record og skriver 1 record ad gangen. Det der var behov for, var f.eks. kontrol om en indberetter havde fået lov til at indberette på et medie (der skulle være foretaget en testkørsel først), om header og trailer records passede, om SE nummeret fandtes, osv. Heldigvis har softwaren en "nødudgang" (lidt a la Exits i IBMS SORT programmer). Denne nødudgang kan kalde en DLL. Da der allerede var RPG expertise i Told & Skat, var det nærliggende at lave en DLL der kunne læse RPG/II sourcetekst, og så behandle inputdata efterfølgende. For at kunne bruge den tilstedeværende ekspertise, var det altså nødvendigt at følge RPG's flowchart, dvs at DLL'en skulle indeholde komplet RPG emulator. Desuden skulle der laves en Windows Editor til RPG kildetekst, så man kunne udvikle programmer på sin egen PC uden at belaste konverteringssystemerne. Da man nu alligevel havde en DLL, var det en smal sag at lave et Windows Standalone program, der kunne udføre RPG/II programmer. Så kunne man også teste programmet på sin egen maskine. Alt var skrevet i TPW 1.50 (Turbo Pascal for Windows)