On Wed, 16 Mar 2011 19:29:35 -0700, Charles Mills wrote: >It would be an interesting exercise to write the simplest proper, reentrant, >RMODE=31 assembler program that output "Hello, world" to anything other than >the console.
Apparently not so interesting, or you'd do it. >Anyone want to venture a guess on how many lines of code? >Fifty? Thirty? Can anyone do it in twenty? I can easily do it in to if I use the entry and exit macros that I normally use to establish reentrancy and return. Without them it seems to take 28. You could shave that to 27 by dispensing with the save area forward chain. HELLO CSECT STM 14,12,12(13) SAVE CALLER'S REGISTERS LR 11,15 SET OUR BASE REGISTER USING HELLO,11 GETMAIN RU,LV=WORKLEN,LOC=24 ST 13,4(,1) BACK CHAIN ST 1,8(,13) FORWARD CHAIN LR 13,1 LOAD MY SAVE AREA ADDRESS USING WORKAREA,13 MVC OPENLIST(MESSAGE-OLIST_M),OLIST_M OPEN (SYSPRINT,OUTPUT),MF=(E,OPENLIST) PUT SYSPRINT,MESSAGE CLOSE MF=(E,OPENLIST) LR 1,13 COPY MY SAVE AREA ADDRESS L 13,4(,13) POINT TO CALLER'S SAVE AREA FREEMAIN RU,A=(1),LV=WORKLEN LM 14,12,12(13) RESTORE CALLER'S REGISTERS SLR 15,15 BR 14 RETURN TO CALLER OLIST_M OPEN (DCB_M,OUTPUT),MF=L DCB_M DCB DSORG=PS,MACRF=PM,DDNAME=SYSPRINT,RECFM=FB,LRECL=80 MESSAGE DC CL80'STUPID "HELLO WORLD" MESSAGE' WORKAREA DSECT , DS 18F SAVE AREA OPENLIST OPEN (SYSPRINT,OUTPUT),MF=L SYSPRINT DCB DSORG=PS,MACRF=PM,DDNAME=SYSPRINT,RECFM=FB,LRECL=80 WORKLEN EQU *-WORKAREA END HELLO -- Tom Marchant ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html