in the wrong place. |
XEDIT macro?? You are still using that museum piece? Programmed in Rexx? Is it on a real mainframe? Or is it an Intel-based emulator? Are you getting paid to do it?
BTW, if you just want to post old code, or anything else typewriter-formatted, you can use the <pre> tag. No need to mess with tables. Eg.,
************************************************************** ** HELLO - Program to print "Hello, World" on device 009 ** ************************************************************** HELLO CSECT STM R14,R12,12(R13) Save Registers LR R12,R15 Load Base Register USING HELLO,R12 Establish Addressability SSM =X'00' Disable Interrupts SPKA 0(0) Disable storage protection LA R2,CCWS Store pointer to CCW chain ST R2,CAW ... in Channel Address Word LA R2,9 Put device address in R2 CLEARIO TIO 0(R2) Test for device busy BC CC1+CC2,CLEARIO Wait until device not busy BC CC3,IOERROR Abort if device error STARTIO SIO 0(R2) Start I/O to the console BC CC1,CSWSTORE A CSW Has been stored BC CC2,CLEARIO Device busy. Wait until clear BC CC3,IOERROR Abort if device error TESTIO TIO 0(R2) Wait for I/O completion BC CC2,TESTIO Busy, Wait for completion BC CC3,IOERROR Abort if device error CSWSTORE CLI CSW+4,CE Channel End w/o Device End? BE TESTIO Yes - wait for Device End too TM CSW+4,BY Channel Busy? BO TESTIO Yes - Keep Waiting TM CSW+4,DE Device End? BNO IOERROR No - The CSW is bad SUCCESS SSM =X'FF' Reenable Interrupts LM R14,R12,12(R13) Restore Caller's Registers XR R15,R15 Clear Return Code BR R14 Return to Caller IOERROR SSM =X'FF' Reenable Interrupts LM R14,R12,12(R13) Restore Caller's Registers LA R15,4 Set Return Code 4 BR R14 Return to Caller DS 0D CCW must be doubleword aligned CCWS CCW X'09',MESSAGE,X'20',L'MESSAGE MESSAGE DC C'Hello, World' CSW EQU X'40' Address of Channel Status Word BY EQU X'10' Channel Busy CE EQU X'08' Channel End DE EQU X'04' Device End CAW EQU X'48' Address of Channel Address Word R2 EQU 2 Register 2 R12 EQU 12 Register 12 R13 EQU 13 Register 13 R14 EQU 14 Register 14 R15 EQU 15 Register 15 CC0 EQU 8 Condition Code 0 CC1 EQU 4 Condition Code 1 CC2 EQU 2 Condition Code 2 CC3 EQU 1 Condition Code 3 END
I’m an old systems programmer and I remember when:
To code or debug in ALC was a special skill. You needed to look and feel the part. You needed an old Hawaiian shirt, a pocket protecter and leaky pens and pencils of all types, jeans (no shorts during office hours), worn out sneakers or cowboy boots, a continuous supply of caffeine or No-doze, and at least a two-pack-a-day habit. Facial hair was optional but could be used to indicate how many days you had spent on the project.
It helped to be creative, slightly masochistic, a free thinker (rule breaker), and a knack for knowing when to stay out of sight (hide from) management and fellow programmers.
No cell phones or personal e-mail back then, only posted notes pinned to your workstation (while you were gone to those never ending meetings), outdated by now voice mails, and memorandums posted on the office bulletin board. We had to hide-out, mostly after hours, to get any work (code/debugging) done.
Computer operators hated to see us commandeer the console, banned us from computer rooms, and constantly complained to management about our bad grooming and attitude.
It took a real programmer to code down to the metal. But somebody had to do it. And it paid a princely sum in those pre-H1B times.
By contrast, COBOL programmers were pussies. /s
BTW. Somewhere one of my old ALC programs is still being executed. Probably at a federal computer center in the Twilight Zone.
And I've used a half dozen different editors. Emacs, VI, Xedit. Kedit for Windows is the best of all of them, and I don't apologize to language bigots for using it.