Mercurial > vm370 > src
changeset 7:5ec223a268bd draft default tip
Import Robert O'Hara's Six Pack 1.3 beta 3
author | Josef 'Jeff' Sipek <jeffpc@josefsipek.net> |
---|---|
date | Sat, 27 Jul 2019 15:46:40 -0400 |
parents | e388c44ca4c5 |
children | |
files | MNT094/DMKSYS.ASSEMBLE MNT191/TEST.ASSEMBLE |
diffstat | 2 files changed, 9 insertions(+), 1232 deletions(-) [+] |
line wrap: on
line diff
--- a/MNT094/DMKSYS.ASSEMBLE Sat Jul 27 15:46:19 2019 -0400 +++ b/MNT094/DMKSYS.ASSEMBLE Sat Jul 27 15:46:40 2019 -0400 @@ -1,10 +1,15 @@ SYS TITLE 'DMKSYS FOR 3350 RELEASE 6' DMK00010 DMKSYS CSECT DMK00020 COPY OPTIONS DMK00030 - SYSUSR VM50-5 DMK00040 + SYSUSR VM50-5,VM50-6 SYSOWN (VM50-1,TEMP),(VM50-2,PAGE),(VM50-3,TEMP),(VM50-4,PAGE) DMK00050 - SYSRES SYSVOL=VM50-1,SYSRES=231,SYSTYPE=3350,SYSNUC=(530,19), XDMK00060 - SYSWRM=(551,2),SYSERR=(549,2),SYSCKP=(553,2) DMK00070 + SYSRES SYSVOL=VM50-1, X + SYSRES=141, X + SYSTYPE=3350, X + SYSNUC=(530,19), X + SYSWRM=(551,2,VM50-1), X + SYSERR=(549,2,VM50-1), X + SYSCKP=(553,2,VM50-1) SYSMON AUTO=YES,USERID=MAINT DMK00080 SYSJRL DMK00090 SYSIPL SYSTYPE=WARM DMK00100 @@ -14,6 +19,7 @@ SYSCOR RMSIZE=16384K,AP=NO DMK00140 .E2 SYSOPR SYSOPER=OPERATOR,SYSDUMP=MAINT DMK00150 SYSTIME ZONE=0,LOC=WEST,ID=GMT DMK00160 + SYSID DEFAULT=SIXPACK SYSLOCS DMK00170 END DMK00180 DMK00190
--- a/MNT191/TEST.ASSEMBLE Sat Jul 27 15:46:19 2019 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1229 +0,0 @@ -* THIS VERSION TEST USES DIAGNOSE 58 I/O INTERFACE INSTEAD OF SIO... -* IT WILL ALSO READ REAL CP STORAGE. -* TYPE IN 'TEST2 0 SYSTEM' TO GET REAL CORE -* - PRINT NOGEN -TEST START 0 - REGEQU - STM R14,R12,12(R13) - LR R3,R15 - LA R11,2048 - LA R11,2048(R3,R11) - USING TEST,R3,R11 - ST R13,SA+4 - LA R13,SA - MVI TRTTAB+X'11',X'11' INITIALIZE TR TABLE FOR TRT - SPKA 0(0) -*********************************************************************** -* GET USERID AND VIRTUAL MACHINE SIZE * -*********************************************************************** - LA R8,CPUINFO GET ADDR OF RESPONSE AREA - LA R9,24 GET NUMBER OF BYTES TO MOVE - DIAG R8,R9,X'00' GO GET USERID - MVC USERID(8),THISID MOVE IN DEFAULT USERID -* - BAL R5,PARMS GO PROCESS INPUT PARAMETERS - GETMAIN R,LV=2000 GET INPUT AREA - LR R12,R1 - USING MAP,R12 -* - MVC USERIDO(8),=CL8'CP' - MVC VMSIZE(4),=X'00FFFFFF' SET TO MAX VMSIZE - CLC USERID(8),=CL8'SYSTEM' DID USER WANT SYSTEM? - BE DSIZE YES - MVC VMSIZE(4),X'560'(0) MOVE THIS VMSIZE INTO AREA - MVC USERIDO(8),USERID PUT USERID ON DISPLAY -* -DSIZE EQU * - L R5,VMSIZE GET VMSIZE - SRA R5,10 DIVIDE BY 1024 - CVD R5,SAVE PUT - MVC VMSIZEO(07),=X'4020206B202120' VMSIZE - ED VMSIZEO(07),SAVE+5 ON DISPLAY - L R5,VMSIZE GET VMSIZE - SLL R5,8 CONVERT - LA R7,ADDR2 VMSIZE TO HEX - LA R8,6 TO GET AND DISPLAY - BAL R14,FHEX THE ADDRESS RANGES - EJECT -*********************************************************************** -* GO GET CONSOLE ADDRESS, CLEAR SCREEN, PREPARE FOR 3270 I/O * -*********************************************************************** - SSM * ENABLE I/O INTRPTS ONLY -* - LA R1,CONWAIT - SVC 202 GO SET CONWAIT - DC AL4(*+4) -* - XR R9,R9 CLEAR R9 - BCTR R9,0 GET -1 - LA R8,CCWE GET ERASE CCW ERASE ADDR - DIAG R9,R15,X'24' GO GET VIRT CON ADDR - STH R9,CONADDR SAVE CONSOLE ADDR - DIAG R8,R9,X'58' ERASE DISPLAY -* - SSM *+1 DISABLE ALL INTRPTS -* - EJECT -*********************************************************************** -* PROCESS INPUT ADDRESS * -*********************************************************************** -* -CMDPROC EQU * - CLI INITADDR,C' ' FIRST CHAR OF INPUT A SPACE? - BE ENTER THEN IGNORE INPUT. . - LA R6,6 GET MAX LENGTH OF INPUT - LA R7,INITADDR GET ADDR OF INPUT AREA -* -CKADDR EQU * - CLI 0(R7),C' ' LOOK FOR END OF ENTRY - BE ADREND GOT IT - LA R7,1(,R7) GET NEXT BYTE - BCT R6,CKADDR GO TRY AGAIN -* -ADREND EQU * - LA R7,6 GET MAX POSSIBLE LENGTH - SR R7,R6 GET LENGTH OF ENTRY - LR R9,R7 PUT IN LENGTH FOR CONVERSION - SLA R6,2 GET NUM OF BITS TO SHIFT AT END - LA R8,INITADDR-1(R7) START AT END OF INPUT AREA - BAL R14,THEX GO CONVERT AREA TO HEX - SRL R5,8(R6) SHIFT TO GET BYTE IN RIGHT PLACE - TM FLAGS,X'20' WAS THIS TO SET BRANCH? - BZ NOBRANCH - NI FLAGS,X'DF' RESET BR FLAG - ST R5,BRANCH - B ENTER -* -NOBRANCH EQU * - N R5,=X'00FFFFF0' ROUND OFF ADDRESS - L R6,VMSIZE GET VMSIZE - S R6,=F'256' ADJUST BY MAX SIZE OF DISPLAY - CR R5,R6 IF R5 > VMSIZE-256 THEN CANT - BH INVALID DISPLAY SCREEN, GO TO ERROR - C R5,=F'0' IF ADDRESS IS < 0, - BL INVALID THEN THAT IS OBVIOUSLY INVALID - ST R5,INITIAL ELSE SAVE VALID ADDRESS -*********************************************************************** -* DISPLAY CORE, AND CHECK INPUT * -*********************************************************************** -ENTER EQU * - BAL R1,GETCORE GO GET A SCREEN FULL OF CORE - BAL R5,IO WRITE SCREEN, WAIT, THEN READ - CLI AID,C'1' PF1? - BE PF1 - CLI AID,C'2' PF2? - BE PF2 - CLI AID,C'3' PF3? - BE PF3 - CLI AID,C'4' PF4? - BE PF4 - CLI AID,C'5' PF5? - BE PF5 - CLI AID,C'6' PF6? - BE PF6 - CLI AID,C'7' PF7? (BWD)? - BE PF3 - CLI AID,C'8' PF8? (FWD)? - BE PF2 - CLI AID,C'9' PF9? - BE PF9 - CLI AID,X'7A' PF10? (BRANCH) - BE PF7 - CLI AID,X'7B' PF11? (PRINT) - BE PF11 - CLI AID,X'7C' PF12? - BE QUIT - CLI AID,C'A' PF13 - BE PF1 - CLI AID,C'B' PF14 - BE PF2 - CLI AID,C'C' PF15 - BE PF3 - CLI AID,C'D' PF16 - BE PF4 - CLI AID,C'E' PF17 - BE PF5 - CLI AID,C'F' PF18 - BE PF6 - CLI AID,C'G' PF19 BWD? - BE PF3 - CLI AID,C'H' PF20 FWD? - BE PF2 - CLI AID,C'I' PF21 - BE PF9 - CLI AID,X'4A' PF22 (BRANCH) - BE PF7 - CLI AID,X'4B' PF23 (PRINT) - BE PF11 - CLI AID,C'<' PF24? - BE QUIT - LA R5,UPDTABLE RESET UPDATE TABLE POINTER - ST R5,PTR SAVE IT - XC UPDTABLE(160),UPDTABLE CLEAR THAT TABLE - BAL R5,CKINPUT GO CHECK USERS INPUT - B ENTER GO DISPLAY AGAIN - EJECT -*********************************************************************** -* PFKEYS 1,2,3 TOP, FWD, AND BWD * -*********************************************************************** -PF1 EQU * - BAL R5,CKUPD GO CHECK FOR UPDATES - XC INITIAL,INITIAL CLEAR INITIAL VALUE - B ENTER -* -* -* -PF2 EQU * - BAL R5,CKUPD GO CHECK FOR UPDATES - L R5,INITIAL GET CURRENT DISPLAY ADDRESS - LA R5,256(,R5) INCR BY 256 BYTES - LA R6,256(,R5) WILL IT EXCEED VMSIZE? - C R6,VMSIZE CHECK ON IT - BNH SETFWD NO - L R5,VMSIZE YES - S R5,=F'256' SET TO VMSIZE-256 - MVI WCC,X'C7' SET ALARM - MVC ERR+5(26),=C'HIGH CORE BOUNDARY REACHED' -* -SETFWD EQU * - ST R5,INITIAL SET NEXT ADDRESS - B ENTER GO DISPLAY IT -* -* -* -PF3 EQU * - BAL R5,CKUPD GO CHECK FOR UPDATES - L R5,INITIAL GET CURRENT DISPLAY ADDRESS - S R5,=F'256' CHECK IF CURRENT-256 IS < 0 - BNM SETBWD NO, VALUE IS OK - XR R5,5 YES, SO SET ADDRESS TO 0 - MVI WCC,X'C7' SET ALARM - MVC ERR+5(25),=C'LOW CORE BOUNDARY REACHED' -* -SETBWD EQU * - ST R5,INITIAL SET PREV ADDRESS - B ENTER GO DISPLAY IT - EJECT -*********************************************************************** -* STORE BACK MODIFIED STORAGE * -*********************************************************************** -PF4 EQU * - TM FLAGS,X'40' IS STORE BIT ENABLED? - BZ NOSTORE NO, CANT STORE - CLC USERID(8),=CL8'SYSTEM' REAL CORE? - BE NOSTORE CANT STORE IN REAL CORE - BAL R5,CKUPD GO CHECK FOR UPDATES - L R4,INITIAL GET INITIAL ADDRESS - LA R10,UPDTABLE AND POINT TO LIST IF UPDATES -* -STORNEXT EQU * - LH R5,0(,R10) GET LEN AND DISP INTO BUFFER - CH R5,=H'0' END OF TABLE? - BE ENDSTORE NO MORE TO STORE - LR R7,R5 COPY - SRL R7,8 GET LENGTH PART ONLY - ICM R7,8,=X'80' SET FOR DIAG REVERSE MOVE - N R5,=X'000000FF' GET ONLY DISPLACEMENT - LA R8,0(R4,R5) GET DESTINATION ADDR+DISPL - LA R6,BUF(R5) GET SOURCE ADDR+DISPL - BCTR R7,0 ADJUST KOUNT - EX R7,MVCINS MOVE IT! -*MVCINS MVC 0(0,R8),0(R6) -* -SKIPSTOR EQU * - LA R10,2(,R10) GET ADDR OF NEXT UPDATE - B STORNEXT GO STOR IT -* -MVCINS MVC 0(0,R8),0(R6) MOVE FROM BUF TO ADDRESS -* -ENDSTORE EQU * - XC UPDTABLE(160),UPDTABLE CLEAR UPDATE TABLES - LA R9,UPDTABLE AND RESET - ST R9,PTR THE POINTER - B ENTER GO REFRESH DISPLAY -* -NOSTORE EQU * - MVC ERR+8(16),=C'NOTHING TO STORE' - MVI WCC,X'C7' SETALARM - B ENTER GO WRITE ERROR - EJECT -*********************************************************************** -* DISPLAY TO ADDRESS POINTED BY CURSOR * -*********************************************************************** -PF5 EQU * - LA R4,WORDS GET ADDRESS OF SBA TABLES - LA R5,64 NUMBER OF SBAS IN TABLE - XR R6,R6 CLEAR R6 -* -CKCURSOR EQU * - CLC CURSOR(2),0(R4) IS CURSOR ON A VALID FIELD? - BE HAVECURS YES - LA R4,2(,R4) INCR SBA POINTER - LA R6,1(,R6) INCR COUNTER - BCT R5,CKCURSOR GO CHECK NEXT SBA - MVI WCC,X'C7' SET ALARM - MVC ERR+2(30),=C'CURSOR IS NOT ON A VALID FIELD' - B ENTER GO WRITE ERROR MSG -* -HAVECURS EQU * - SLL R6,2 GET DISPL INTO SBA TABLE - L R6,BUF(R6) GET ADDR FROM BUFFER - LA R6,0(,R6) CLEAR HIGH BYTE - C R6,=F'0' CHECK FOR INVALID ADDRESS - BL INVALID YES - L R7,VMSIZE GET MACHINE SIZE - S R7,=F'256' ADJUST FOR DISPLAY SIZE - CR R6,R7 ADDRESS > MACHINE SIZE-256? - BH INVALID YES, INVALID ADDR - N R6,=X'00FFFFF0' ADJUST FOR DISPLAY - ST R6,INITIAL SAVE AS NEW INITIAL ADDR - BAL R5,CKUPD GO CLEAR OUT ANY UPDATES - B ENTER GO DISPLAY NEW DATA -* -INVALID EQU * - MVI WCC,X'C7' ALARM - MVC ERR+7(21),=C'ADDRESS OUT OF BOUNDS' - B ENTER GO DISPLAY ERROR MSG -* -*********************** REDISPLAY SCREEN, CANCEL UPDATES ************* -* -PF6 EQU * - BAL R5,CKUPD - B ENTER - EJECT -*********************************************************************** -PF7 EQU * - L R15,BRANCH LOAD BRANCH ADDRESS - C R15,VMSIZE MORE THAN VMSIZE? - BH INVALID YES, INVALID ADDR - C R15,=F'0' LESS THAN 0 - BL INVALID YES, INVALID ADDR - STM R0,R15,SA+8 SAVE ALL REGS - BALR R14,R15 AND BRANCH . . . - LM R0,R15,SA+8 RESTORE ALL REGS - B ENTER GO UPDATE DISPLAY -* -PF9 EQU * - L R5,=X'00030000' - MVC 0(ENDTXT-TXT,R5),TXT - ST R5,BRANCH - ST R5,INITIAL - MVC BRADDR(6),=CL6'030000' - B ENTER -* - DS 0F -TXT EQU * - LA R5,160(0,R15) 00 (00) - ST R5,72(0,0) 04 (04) - LH R10,248(0,R15) 08 (08) - BCR 0,0 12 (0C) - BCR 0,0 14 (0E) - SIO 0(R10) 16 (10) - TIO 0(R10) 20 (14) - BC 7,20(0,R15) 24 (18) - MVC 240(8,R15),64(0) 28 (1C) - BCR 0,0 34 (22) - LA R5,80(0,R15) 36 (24) - ST R5,72(0,0) 40 (28) - SIO 0(R10) 44 (2C) - TIO 0(R10) 48 (30) - BC 7,48(0,R15) 52 (34) - BCR 15,R14 56 (38) - DC 22X'00' 58 (3A) - DC X'0403006020000010' 80 (50) - DC 72X'00' 88 (58) - DC X'070300E040000006' 160 (A0) - DC X'310300E240000005' 168 (A8) - DC X'080300A800000000' 176 (B0) - DC X'0603010000000100' 184 (B8) - DC 56X'00' 192 (C0) - DC X'0444' 248 (F8) - DC 6X'00' 256 (100) -ENDTXT EQU * -* -***** PRINTER -* -PF11 EQU * - MVI CCWP1,X'09' SET TO SINGLE SPACE - LA 5,A00ADR GET ADDR OF FIRST LINE - LA 7,16 PRINT SIXTEEN LINES -PRINTIT EQU * - LA 6,5(,5) LINE ADDR - STCM 6,7,CCWP1+1 IN FIRST CCW - LA 6,16(,5) WORD 1 - STCM 6,7,CCWP2+1 PUT IN CCW - LA 6,29(,5) WORD 2 - STCM 6,7,CCWP3+1 PUT IN CCW - LA 6,42(,5) WORD 3 - STCM 6,7,CCWP4+1 PUT IN CCW - LA 6,55(,5) WORD 4 - STCM 6,7,CCWP5+1 PUT IN CCW - LA 6,68(,5) CHARACTER PORTION - STCM 6,7,CCWP6+1 PUT IN CCW - LA 6,89(,5) LINE ADDR - STCM 6,7,CCWP7+1 PUT IN CCW - C 7,=F'1' IS THIS THE LAST LINE? - BNE *+8 NO - MVI CCWP1,X'19' YES, MAKE IT SKIP 3 LINES - LA 1,CCWPRT GET PRT CCW ADDRESS - ST 1,72(0) PUT IN CAW -* - LH 1,PRTADDR GET ADDR OF PRINTER - SIO 0(1) START THE I/O - TIO 0(1) - BC 7,*-4 WAIT FOR COMPLETION -* - TM 68(0),X'02' UNIT CHECK? - BO NOTREADY -* - TIO 0(1) - BC 7,*-4 WAIT UNTIL CC=0 -* - LA 5,95(,5) POINT TO NEXT DISPLAY LINE - BCT 7,PRINTIT GO DO ANOTHER - MVC ERR+9(14),=C'PRINT COMPLETE' - B ENTER -* -NOTREADY EQU * - MVI WCC,X'C7' ALARM - MVC ERR+7(17),=C'PRINTER NOT READY' - B ENTER - EJECT -*********************************************************************** -* TERMINATION RTNS * -*********************************************************************** -QUIT EQU * - SSM =X'FF' REENABLE ALL INTRPTS -* - LR R1,R12 - FREEMAIN R,LV=2000,A=(1) FREE INPUT AREA -* -CMS EQU * - L R13,4(,R13) GET SA ADDR - LM R14,R12,12(R13) RETURN - XR R15,R15 TO - BR R14 CMS - EJECT -*********************************************************************** -* GET CORE AND FORMAT ROUTINE * -*********************************************************************** -GETCORE EQU * - L R4,INITIAL GET INITIAL ADDR - TM FLAGS,X'40' UPDATE IN PROGRESS? - BO SKIP DONT GET CORE IF UPDATE PENDING - CLC USERID(8),=CL8'SYSTEM' LOOK AT REAL CORE? - BE SYSREAL YES - B LOCAL ELSE DO LOCAL STG -* -SYSREAL EQU * - ST R1,SAVE - L R6,INITIAL GET INITIAL ADDR - LA R5,64 NUMBER OF WORDS TO FETCH - XR R4,R4 CLEAR DISPLACEMENT KOUNT - LA R10,BUF WHERE TO PUT DATA -* -SYSLOOP EQU * - LA R1,0(R4,R6) GET INITIAL ADDR PLUS DISPLACE - BAL R14,DCP - ST R15,0(,R10) PUT WORD IN BUFFER - LA R10,4(,R10) KICK UP BUFFER ADDR - LA R4,4(,R4) KICK UP DISPLACEMENT - BCT R5,SYSLOOP GO GET NEXT WORD OF REAL CORE - L R1,SAVE RESTORE R1 - B SYSLCL -* -LOCAL EQU * - MVC BUF(256),0(R4) MOVE 256 FROM THIS MACHINE -* -SYSLCL EQU * - MVC PSW1(8),=C'00040000' SET UP PSW+0 - BALR R5,0 AND GET PSW+4 - LA R8,8 AND - LA R7,PSW2 CONVERT - BAL R14,FHEX TO EBCDIC FOR DISPLAY - L R4,INITIAL GET INITIAL ADDRESS -* -SKIP EQU * - ST R4,WORK1 STORE INITIAL IN WORK AREA - LA R6,BUF GET CORE BUFFER ADDR - LA R10,A00ADR GET FIRST FIELD ON DISPLAY ADDR - LA R15,16 NUMBER OF LINES TO DISPLAY -* -NEXTLINE EQU * - ICM R5,14,WORK1+1 GET ADDR - LA R7,5(,R10) GET AREA ON DISPLAY - LA R8,6 LENGTH - BAL R14,FHEX CONVERT TO EBCDIC - ICM R5,15,0(R6) GET A WORD OF CORE - LA R7,16(,R10) GET AREA ADDR ON DISPLAY - LA R8,8 GET LENGTH - BAL R14,FHEX CONVERT - ICM R5,15,4(R6) WORD - LA R7,29(,R10) AREA - LA R8,8 LENGTH - BAL R14,FHEX CONVERT - ICM R5,15,8(R6) WORD - LA R7,42(,R10) AREA - LA R8,8 LENGTH - BAL R14,FHEX CONVERT - ICM R5,15,12(R6) WORD - LA R7,55(,R10) AREA - LA R8,8 LENGTH - BAL R14,FHEX CONVERT - MVC 69(16,R10),0(R6) MOVE IN CHARACTER PART - TR 69(16,R10),TRTAB TRANSLATE TO DISPLAY CHARS ONLY - LA R6,16(,R6) GET NEXT CORE BUFFER ADDR - LA R10,95(,R10) INCR DISPLAY ADDR - L R5,WORK1 REFETCH INITIAL WORK ADDR - LA R5,16(,R5) INCR TO NEXT LINE ADDRESS - ST R5,WORK1 SAVE IT - BCT R15,NEXTLINE GO FORMAT NEXT LINE - L R5,BRANCH GET BRANCH ADDRESS - C R5,=F'-1' IS BRANCH TO -1 - BER R1 YES, THEN NO BRANCH ADDR IS SET - SLL R5,8 PUT IN R5 - LA R8,6 LENGTH - LA R7,BRADDR DISPLAY BRANCH - BAL R14,FHEX ADDRESS IN PFKEY LINE - BR R1 RETURN - EJECT -*********************************************************************** -* PROCESS INPUT PARMS AND GET VMSIZE * -*********************************************************************** -PARMS EQU * - CLC 8(8,R1),=8X'FF' NO PARAMETERS ENTERED? - BER R5 EVERYTHING DEFAULTS - MVC INITADDR(6),8(R1) MOVE IN INITIAL REQ ADDR - CLC 16(8,R1),=8X'FF' USERID SPECIFIED? - BER 5 USE DEFAULT USERID THEN - MVC USERID(8),16(R1) MOVE IN NEW USERID - BR R5 -* -GETSIZE EQU * - MVC CMSPGPSW(8),X'68'(0) SAVE CMS PROG NEW PSW - LA R1,PGINT GET PROG INT ADDR - ST R1,X'6C'(,0) PUT IN PROG NEW PSW - L R1,=X'000003AC' REAL CORE ADDR OF OPER VMBLOK - BAL R14,DCP GO GET WORD AT THAT ADDR - LA R15,0(,R15) - LR R1,R15 SAVE ADDR -* -TOP EQU * - LR R6,R1 SAVE ADDR - LA R1,X'110'(,R6) GET USERID (4BYTES) - BAL R14,DCP - ST R15,REC STORE 1ST 4 BYTES - LA R1,X'114'(,R6) GET USERID (2ND 4BYTES) - BAL R14,DCP - ST R15,REC+4 STORE IT - CLC NAME(8),=CL8' ' FIRST TIME THRU LOOP? - BNE CKNAME NO, - MVC NAME(8),REC SET NAME TO 1ST VMBLOK ID - B AROUND -* -CKNAME EQU * - CLC REC(8),NAME HAVE WE LOOPED AROUND YET - BE NOUSER YES, SET ERR MSG -* -AROUND EQU * - CLC REC(8),USERID IS THIS THE USERID SPECIFIED? - BE GOTUSER YES, GO FIX HIM UP - LA R1,8(,R6) GET NEXT VMBLOK ADDR - BAL R14,DCP . - LA R15,0(,R15) . - C R15,=F'0' LAST VMBLOK ADDR? - BE NOUSER YES, THEN NOT FOUND - LR R1,R15 GO WORK ON NEXT ONE. . - B TOP -* -NOUSER EQU * - MVC X'68'(8,0),CMSPGPSW RESTORE CMS PG PSW - CLC USERID(8),=CL8'SYSTEM' REAL CORE - BER R5 YES - OI FLAGS,X'80' SET ERR BIT 1 - B QUIT -* -GOTUSER EQU * - LA R1,X'134'(,6) GET MACHINE VMSIZE - BAL R14,DCP - ST R15,VMSIZE SAVE IT - ST R6,VMBADDR SAVE VMBLOK ADDR - MVC X'68'(8,0),CMSPGPSW RESTORE CMS PSW - BR R5 -* -DCP EQU * - ST R1,REQ STORE REQUEST ADDR - LA R1,REQ GET ADDRESS OF REQUEST ADDR - L R8,KNT GET NUMBER OF WORDS REQUESTED - LA R9,RES GET ADDR OF RESPONSE AREA - DIAG R1,R8,X'04' GO GET 4 BYTES OF REAL CORE - L R15,RES PUT RESULT IN R15 - BR R14 RETURN -* -PGINT EQU * - MVC USERID(8),THISID PROG INTRPT 0C2? - MVC X'68'(8,0),CMSPGPSW RESTORE CMS NEW PSW - BR R5 - EJECT -*********************************************************************** -* INPUT PROCESSOR * -*********************************************************************** -CKINPUT EQU * - CLI DATA,X'00' FIRST BYTE OF INPUT X'00'? - BE ENTER NO DATA IN BUFFER - LA R1,MAP GET INPUT AREA ADDR -* -CONTINUE EQU * - LA R1,1(,R1) INCR PAST LAST SBA - TRT 0(100,R1),TRTTAB LOOK FOR AN SBA - BZ ENTER NO MORE SBAS, GO DISPLAY SCREEN - LA R2,WORDS GET ADDR OF WORDS SBA TABLE - XR R10,R10 CLEAR COUNT - LA R6,64 NUMBER OF WORD ENTRIES -* -CKWORD EQU * - CLC 1(2,R1),0(R2) LOOK FOR MATCHING SBA IN TABLE - BE GOTSBA1 FOUND IT - LA R2,2(,R2) POINT TO NEXT SBA - LA R10,1(,R10) INCR WORD NUMBER - BCT R6,CKWORD GO TRY AGAIN - XR R10,R10 CLEAR COUNT - LA R6,16 NUMBER OF CHAR SBA ENTRIES -* -CKCHAR EQU * - CLC 1(2,R1),0(R2) LOOK FOR MATCHING SBA IN CHAR T - BE GOTSBA2 FOUND ONE - LA R2,2(,R2) POINT TO NEXT SBA - LA 10,1(,R10) INCR LINE NUMBER - BCT R6,CKCHAR GO TRY AGAIN - CLC 1(2,R1),CMDADDR IS THIS THE COMMAND LINE? - BNE ENTER NO, GO DISPLAY - ST R1,WORK2 SAVE ADDR OF THIS IN BUFFER - CLI 3(R1),C'=' REPEAT COMMAND? - BE LASTONE YES - MVC LASTCMD(75),0(R1) SAVE THE LAST COMMAND - B CMDEXEC GO PROCESS THE COMMAND -* -LASTONE EQU * - LA R1,LASTCMD GET LAST CMD ADDR -* -CMDEXEC EQU * - OC 3(75,R1),=CL75' ' GET UPPER CASE - CLI 3(R1),C'/' WAS IT A SEARCH - BE SRCHRTN YES, GO SEARCH - CLC 3(3,R1),=C'CMS' CMS? - BE CMSUBSET GO TO CMS SUBSET - CLC 3(3,R1),=C'BR ' SET BRANCH ADDRESS? - BNE *+12 NO, SKIP AROUND - LA R1,3(,R1) ADJUST TO ADDRESS - OI FLAGS,X'20' SET ON BRANCH ADDR FLAG - MVC INITADDR(6),3(R1) THEN MOVE NEW ADDR TO INIT - B CMDPROC AND GO PROCESS IT -* -CMSUBSET EQU * - LA R1,SUBSET - SVC 202 GO TO CMS SUBSET - DC AL4(QUIT) - B ENTER GO DISPLAY -* -GOTSBA1 EQU * - SLL R10,1 GET NUM BYTES TO DISPLACE - LH R6,DISPLTAB(10) GET INSTRUCTION DISPLACEMENT - STH R6,INSTR1+2 STORE IN INSTRUCTION - BCR 15,R0 COMPLETE ALL ACCESSES -INSTR1 LA R6,0(0,0) GET ADDR OF DISPLAY FIELD - OC 5(8,R6),=CL75' ' GET TO UPPER CASE - LA R8,10(,R1) GET END OF FIELD - LA R9,8 - BAL R14,THEX CONVERT TO HEX - SLL R10,1 GET BYTES INTO BUFFER - LR R8,R10 SAVE THIS VALUE - LA R10,BUF(R10) INDEX INTO BUFFER - STCM R5,15,0(R10) PUT WORD IN BUFFER - L R9,PTR GET PTR IN UPD TABLE - ICM R8,2,=X'04' PUT LENGTH IN R8 - STH R8,0(,R9) SAVE IN UPDATE TABLE - LA R9,2(,R9) GET NEXT TABLE ADDR - ST R9,PTR SAVE IT - MVI 4(R6),X'C9' MAKE FIELD BRIGHT - OI FLAGS,X'40' GET UPDATE-IN-PROGRESS FLAG - B CONTINUE GO NEXT NEXT SBA -* -GOTSBA2 EQU * - SLL R10,1 MULT COUNT BY 2 - LH R6,CHARTAB(R10) TO INDEX INTO CHAR TABLE - STH R6,INSTR2+2 STORE BASE-DISPL INTO INSTR - BCR 15,R0 COMPLETE ALL ACCESSES -INSTR2 LA R6,0(0,0) GET ADDR OF DISPLAY FIELD - SLL R10,3 GET TRUE DISPL INTO BUFFER - LA R8,BUF(R10) HERE - OC 4(16,R1),=CL75' ' GET TO UPPER CASE - MVC 0(16,R8),4(R1) MOVE INTO BUFFER - L R9,PTR GET UPDATE PTR - ICM R10,2,=X'10' SET LEN AT 16 - STH R10,0(,R9) STORE IN UPDATE TABLE - LA R9,2(,R9) INCR TABLE ADDR - ST R9,PTR SAVE IT - BCTR R6,0 GET FIELD ADDR - BCTR R6,0 MINUS 2 TO POINT TO ATTRB BYTE - MVI 0(R6),X'C9' MOVE IN BRIGHT ATTRIB - OI FLAGS,X'40' SET UPDATE FLAG - B CONTINUE GO TRY NEXT SBA - EJECT -*********************************************************************** -* SEARCH ROUTINES * -*********************************************************************** -SRCHRTN EQU * - LA R4,4(,R1) GET DATA TO SEARCH FOR - LR R6,R4 SAVE IT - LA R5,75 GET MAX DATA LENGTH -* -CKIT EQU * - CLI 0(R4),C'/' SEARCH FOR ENDING SLASH - BE SEARCH GO IT - LA R4,1(,R4) INCR TO NEXT CHAR - BCT R5,CKIT GO TRY AGAIN - LR R4,R6 RESTORE STARTING ADDR - LA R5,75 MAX DATA LEN -* -CK40 EQU * - CLI 0(R4),X'40' DATA END WITH A SPACE? - BE SEARCH YES - CLI 0(R4),X'00' OR X'00'? - BE SEARCH YES - LA R4,1(,R4) INCR POINTER - BCT R5,CK40 GO TRY AGAIN -* -SEARCH EQU * - SR R4,R6 RESTORE START - BCTR R4,0 ADJUST FOR EXECUTE - L R5,INITIAL GET ADDRESS TO START SEARCH - LA R5,16(,R5) GET PAST CURRENT LINE - L R7,VMSIZE GET END OF MACHINE - LR R10,R7 BUT ADJUST - S R10,=F'256' BY 256 FOR DISPLAY LENGTH - SR R7,R4 -LENGTH OF LITERAL TO GET TRUE - BCTR R7,0 'END' OF MACHINE TO ACCOUNT FOR - BCTR R7,0 LITERAL LENGTH BEYOND MACHINE -* SIZE AS ADDR IN R5 APPROACHES -* THE MACHINE SIZE -* -LOOK EQU * - EX R4,CLCINS LOOK FOR THE DATA -*CLCINS CLC 4(0,R1),0(R5) - BE FOUND FOUND IT - LA R5,1(,R5) GET NEXT BYTE - CR R5,R7 UP TO MACHINE SIZE? - BE NOTFND YES, DATA BOT FOUND - B LOOK NO, GO LOOK AGAIN -* -CLCINS CLC 4(0,R1),0(R5) SEARCH -* -* -LOOK2 EQU * - LA R5,BUF GET CORE BUFFER ADDR - LA R6,256 NUMBER OF BYTES TO CHECK AT A TM -* -LOOK3 EQU * - EX R4,CLCINS CHECK - BE FOUND2 FOUND IT - LA R5,1(,R5) INCR BUFFER ADDR - LA R8,1(,R8) INCR INITIAL ADDR - BCT R6,LOOK3 GO LOOK AGAIN - CR R8,R10 UP TO VMSIZE? - BH NOTFND YES, NOT FOUND - B LOOK2 NO, GO LOOK AGAIN -* -FOUND2 EQU * - LR R5,R8 GET FOUND ADDRESS -* -FOUND EQU * - L R6,VMSIZE CHECK - S R6,=F'256' AGAINST - CR R5,R6 VMSIZE - BH ADJUST - N R5,=X'00FFFFF0' ADJUST ADDRESS FOR DISPLAY - ST R5,INITIAL STORE FOR NEW INITIAL ADDR - B ENTER -* -NOTFND EQU * - MVI WCC,X'C7' ALARM - MVC ERR+9(14),=C'DATA NOT FOUND' ERR - B ENTER -* -ADJUST EQU * - ST R6,INITIAL NEW INITIAL ADDR - B ENTER GO DISPLAY - EJECT -*********************************************************************** -* CONVERSION AND I/O ROUTINES * -*********************************************************************** -CKUPD EQU * THIS RTN CLEARS UPDATE POINTERS - TM FLAGS,X'40' IS UPDATE FLAG ON? - BZR R5 THEN DONT CLEAR YET - LA R1,A00ADR GET DISPLAY ADDR - LA R4,A0FDSP-A00ADR GET LENGTH -* -FIND EQU * - CLI 0(R1),X'C9' LOOK FOR ALL X'C9'S (UNPROT,BRT) - BE FOUNDC9 GOT ONE -* -NEXTC9 EQU * - LA R1,1(,R1) GO POINT TO NEXT - BCT R4,FIND GO LOOK AGAIN - NI FLAGS,X'BF' RESET UPDATE FLAGS - BR R5 RETURN -* -FOUNDC9 EQU * - MVI 0(R1),X'40' CHANGE TO (UNPROT,NORM) - B NEXTC9 GO LOOK FOR NEXT -* -* -FHEX EQU * CONVERT FROM HEX TO EBCDIC -* ENTRY: R7=AREA ADDR, R8=LEN - XR R4,R4 EXIT : THE AREA HOLDS EBCDIC - SLDL R4,R4 GET A HALF BYTE - LA R4,240(,R4) ADD 'F0' - C R4,=F'250' MORE THAN 'FA'? - BL STC NO, - S R4,=F'57' YES, THEN MAKE ALPHA A-F -* -STC EQU * - STC R4,0(,R7) PUT IN AREA - LA R7,1(,R7) INCR AREA ADDR - BCT R8,FHEX DEC KOUNT - BR R14 RETURN -* -THEX EQU * CONVERT FROM EBCDIC TO HEX -* ENTRY: R8=AREA ADDR, R9=LEN - XR R4,R4 EXIT : R5 HOLDS DATA -* -LUPE EQU * - IC R4,0(,R8) GET A BYTE - C R4,=F'239' ALPHA OR NUMERIC? - BH DIGIT IT IS NUMBER - LA R4,9(,R4) ADD IN 9 -* -DIGIT EQU * - N R4,=X'0000000F' TO GET FROM 0-F - SRDL R4,R4 PUT IN R5 - BCTR R8,0 DECR COUNT - BCT R9,LUPE GO GET NEXT BYTE - BR R14 RETURN -* -DIAG08 EQU * - LM R7,R9,=F'0,30,0' SET REGS UP - DIAG R6,R8,X'08' ISSUE CP COMMAND POINTED BY R6 - BR R5 -* -IO EQU * - XC X'40'(8,0),X'40'(0) CLEAR CSW - LA R1,=A(PUT3270P) GET ADDR OF DISPLAY PARM LIT - L R15,=V(PUT3270) GET OUTPUT RTN ADDR - BALR R14,R15 DISPLAY THE PANEL -* - XC MAP(256),MAP CLEAR FIRST PART OF INPUT BUFR - XC MAP+256(256),MAP+256 - XC MAP+512(256),MAP+512 - XC MAP+768(256),MAP+768 - ST R12,BUFFER Set input buffer addr in plist - MVC BLEN,=H'2000' Set size of input buffer -* - LA R1,GET3270P point to read rtn - L R15,=V(GET3270) Read input datqa - BALR R14,R15 -* - MVI ERR,C' ' - MVC ERR+1(L'ERR-1),ERR CLEAR ERR MSG AREA - MVI WCC,X'C3' RESET ALARM - BR R5 - EJECT -*********************************************************************** -* CONSTANTS * -*********************************************************************** -SA DS 9D REGISTER SAVE AREA -* -PUT3270P DS 0XL16 PUT3270 calling parm list - DC F'0' Do not clear screen - DC X'00000080' Issue erase/write - DC A(DISPLAY) Data to display - DC A(ENDISPL-DISPLAY) Size to display -* -GET3270P DS 0XL8 GET3270 calling parm list -BUFFER DS A addr of input buffer to read to -BLENA DC A(BLEN) addr of 2-byte read length -* -BLEN DC H'0' Size to read/size actually read -* -* -CCWE DC X'19',AL3(SPACE),X'20FF0001' -* -CCWPRT EQU * -CCWP1 CCW X'09',*-*,X'A0',6 PRINT CCWS - CCW X'00',SPACE,X'A0',3 SPACES -CCWP2 CCW X'00',*-*,X'A0',8 PRINT CCWS - CCW X'00',SPACE,X'A0',2 SPACES -CCWP3 CCW X'00',*-*,X'A0',8 PRINT CCWS - CCW X'00',SPACE,X'A0',2 SPACES -CCWP4 CCW X'00',*-*,X'A0',8 PRINT CCWS - CCW X'00',SPACE,X'A0',2 SPACES -CCWP5 CCW X'00',*-*,X'A0',8 PRINT CCWS - CCW X'00',SPACE,X'A0',3 SPACES -CCWP6 CCW X'00',*-*,X'A0',18 PRINT CCWS - CCW X'00',SPACE,X'A0',3 SPACES -CCWP7 CCW X'00',*-*,X'60',6 PRINT CCWS - CCW X'03',*-*,X'20',1 -* -* -* -CPUINFO EQU * START OF STORE CPU ID EXT INFO. - DS D RESERVED - DS D RESERVED -THISID DS D ID OF RUNNING MACHINE -USERID DS D USERID OF CORE TO DISPLAY -CMSPGPSW DS D CMS NEW PROG PSW -SAVE DS D SAVE AREA -NAME DC CL8' ' VMBLOK COMPARE NAME -REC DS D SAVE AREA -CONWAIT DC CL8'CONWAIT',XL8'00' CONWAIT CONSTANT -SUBSET DC CL8'SUBSET',8X'FF' CMS SUBSET CONSTANT -CMSCAW DS F CMS ORIGINAL CAW -VMSIZE DS F HOLDS VMSIZE -VMBADDR DC F'0' HOLDS VMBLOK ADDR -INITIAL DC F'0' HOLDS DISPLAY ADDR -WORK1 DC F'0' WORK AREA -WORK2 DC F'0' WORK AREA -BRANCH DC F'-1' BRANCH ADDRESS -PTR DC A(UPDTABLE) POINTER TO UPDATE TABLE -REQ DC X'00000000' REAL ADDR -KNT DC F'1' NUM OF REAL ADDRS -RES DC F'0' RESPONSE AREA -CONADDR DS H CONSOLE ADDR -PRTADDR DC X'000E' PRINT ADDRESS -INITADDR DC CL6'000000' EBCDIC DISPLAY ADDRESS -SPACE DC CL3' ' SPACE -FLAGS DC X'00' FLAG BYTE -* -* 1... .... ERROR MSG BIT -* .1.. .... UPDATE-IN-PROGRESS -* ..1. .... BRANCH ADDR TO SET -* ...X XXXX NOT USED -* -LASTCMD DC CL78' ' HOLD LAST COMMAND INPUT -BUF DS 256C INCORE BUFFER -* -* 1 2 3 4 -WORDS DC X'C26AC2F5C340C34B' 0 - DC X'C37AC4C5C450C45B' 1 SBA TABLE - DC X'C54AC5D5C560C56B' 2 - DC X'C65AC6E5C6F0C67B' 3 FOR DISPLAY - DC X'C76AC7F5C840C84B' 4 - DC X'C87AC9C5C950C95B' 5 WORDS - DC X'4A4A4AD54A604A6B' 6 - DC X'4B5A4BE54BF04B7B' 7 - DC X'4C6A4CF54D404D4B' 8 - DC X'4D7A4EC54E504E5B' 9 - DC X'4F4A4FD54F604F6B' A - DC X'505A50E550F0507B' B - DC X'D16AD1F5D240D24B' C - DC X'D27AD3C5D350D35B' D - DC X'D44AD4D5D460D46B' E - DC X'D55AD5E5D5F0D57B' F -* -* -CHAR DC X'C3D6C4E6C5F6C7C6C8D6C9E64AF64CC6' SBA TABLE FOR - DC X'4DD64EE64FF6D1C6D2D6D3E6D4F6D6C6' CHAR DISPLAY -* -CMDADDR DC X'5AD5' CMDLINE SBA -* -* -* 0 1 2 3 4 5 6 7 8 9 A B C D E F -TRTAB DC X'4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B' 0 TR TABLE - DC X'4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B' 1 - DC X'4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B' 2 - DC X'4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B' 3 FOR - DC X'404B4B4B4B4B4B4B4B4B4B4B4B4B4B4B' 4 - DC X'4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B' 5 - DC X'4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B' 6 - DC X'4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B' 7 CHARACTER - DC X'4B8182838485868788894B4B4B4B4B4B' 8 - DC X'4B9192939495969798994B4B4B4B4B4B' 9 - DC X'4B4BA2A3A4A5A6A7A8A94B4B4B4B4B4B' A - DC X'4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B' B CONVERSION - DC X'4BC1C2C3C4C5C6C7C8C94B4B4B4B4B4B' C - DC X'4BD1D2D3D4D5D6D7D8D94B4B4B4B4B4B' D - DC X'4B4BE2E3E4E5E6E7E8E94B4B4B4B4B4B' E - DC X'F0F1F2F3F4F5F6F7F8F94B4B4B4B4B4B' F -* -TRTTAB DC 256X'00' -* -DISPLTAB DC S(A00WD1) - DC S(A00WD2) BASE AND DISPLACEMENT - DC S(A00WD3) - DC S(A00WD4) - DC S(A01WD1) - DC S(A01WD2) - DC S(A01WD3) - DC S(A01WD4) TABLE - DC S(A02WD1) - DC S(A02WD2) - DC S(A02WD3) - DC S(A02WD4) - DC S(A03WD1) - DC S(A03WD2) FOR - DC S(A03WD3) - DC S(A03WD4) - DC S(A04WD1) - DC S(A04WD2) - DC S(A04WD3) - DC S(A04WD4) DISPLAY - DC S(A05WD1) - DC S(A05WD2) - DC S(A05WD3) - DC S(A05WD4) - DC S(A06WD1) - DC S(A06WD2) - DC S(A06WD3) - DC S(A06WD4) - DC S(A07WD1) - DC S(A07WD2) FIELDS - DC S(A07WD3) - DC S(A07WD4) - DC S(A08WD1) - DC S(A08WD2) - DC S(A08WD3) - DC S(A08WD4) - DC S(A09WD1) - DC S(A09WD2) - DC S(A09WD3) - DC S(A09WD4) - DC S(A0AWD1) - DC S(A0AWD2) - DC S(A0AWD3) - DC S(A0AWD4) - DC S(A0BWD1) - DC S(A0BWD2) - DC S(A0BWD3) - DC S(A0BWD4) - DC S(A0CWD1) - DC S(A0CWD2) - DC S(A0CWD3) - DC S(A0CWD4) - DC S(A0DWD1) - DC S(A0DWD2) - DC S(A0DWD3) - DC S(A0DWD4) - DC S(A0EWD1) - DC S(A0EWD2) - DC S(A0EWD3) - DC S(A0EWD4) - DC S(A0FWD1) - DC S(A0FWD2) - DC S(A0FWD3) - DC S(A0FWD4) -* -CHARTAB DC S(A00TR,A01TR,A02TR,A03TR,A04TR,A05TR,A06TR,A07TR) - DC S(A08TR,A09TR,A0ATR,A0BTR,A0CTR,A0DTR,A0ETR,A0FTR) -* -UPDTABLE DC 80H'0' UPDATE POINTERS IN BUFFER - DC 4H'0' ALWAYS ZERO -* -DISPLAY EQU * -WCC DC X'C3' - DC X'1140401DF8' - DC C'USER ' -USERIDO DC CL8' ' - DC CL3' ' - DC C'PSW ' -PSW1 DC CL8' ' - DC CL1' ' -PSW2 DC CL8' ' - DC CL3' ' -VMSIZEO DC CL8' K' - DC X'1140F51DF8' - DC C'ADDRESSES ' -ADDR1 DC C'000000' - DC C' - ' -ADDR2 DC C'000000' -* -A00ADR DC X'11C2601DF0',CL6'000000' -A00WD1 DC XL5'1DF0401D40',CL8'00000000' -A00WD2 DC XL5'1DF0401D40',CL8'00000000' -A00WD3 DC XL5'1DF0401D40',CL8'00000000' -A00WD4 DC XL5'1DF0401D40',CL8'00000000' - DC X'1DF0401D40',C'*' -A00TR DC CL16' ' - DC C'*',X'1DF040' -A00DSP DC CL6'000000' -* -A01ADR DC X'11C3F01DF0',CL6'000000' -A01WD1 DC XL5'1DF0401D40',CL8'00000000' -A01WD2 DC XL5'1DF0401D40',CL8'00000000' -A01WD3 DC XL5'1DF0401D40',CL8'00000000' -A01WD4 DC XL5'1DF0401D40',CL8'00000000' - DC X'1DF0401D40',C'*' -A01TR DC CL16' ' - DC C'*',X'1DF040' -A01DSP DC CL6'000010' -* -A02ADR DC X'11C5401DF0',CL6'000000' -A02WD1 DC XL5'1DF0401D40',CL8'00000000' -A02WD2 DC XL5'1DF0401D40',CL8'00000000' -A02WD3 DC XL5'1DF0401D40',CL8'00000000' -A02WD4 DC XL5'1DF0401D40',CL8'00000000' - DC X'1DF0401D40',C'*' -A02TR DC CL16' ' - DC C'*',X'1DF040' -A02DSP DC CL6'000020' -* -A03ADR DC X'11C6501DF0',CL6'000000' -A03WD1 DC XL5'1DF0401D40',CL8'00000000' -A03WD2 DC XL5'1DF0401D40',CL8'00000000' -A03WD3 DC XL5'1DF0401D40',CL8'00000000' -A03WD4 DC XL5'1DF0401D40',CL8'00000000' - DC X'1DF0401D40',C'*' -A03TR DC CL16' ' - DC C'*',X'1DF040' -A03DSP DC CL6'000030' -* -A04ADR DC X'11C7601DF0',CL6'000000' -A04WD1 DC XL5'1DF0401D40',CL8'00000000' -A04WD2 DC XL5'1DF0401D40',CL8'00000000' -A04WD3 DC XL5'1DF0401D40',CL8'00000000' -A04WD4 DC XL5'1DF0401D40',CL8'00000000' - DC X'1DF0401D40',C'*' -A04TR DC CL16' ' - DC C'*',X'1DF040' -A04DSP DC CL6'000040' -* -A05ADR DC X'11C8F01DF0',CL6'000000' -A05WD1 DC XL5'1DF0401D40',CL8'00000000' -A05WD2 DC XL5'1DF0401D40',CL8'00000000' -A05WD3 DC XL5'1DF0401D40',CL8'00000000' -A05WD4 DC XL5'1DF0401D40',CL8'00000000' - DC X'1DF0401D40',C'*' -A05TR DC CL16' ' - DC C'*',X'1DF040' -A05DSP DC CL6'000050' -* -A06ADR DC X'114A401DF0',CL6'000000' -A06WD1 DC XL5'1DF0401D40',CL8'00000000' -A06WD2 DC XL5'1DF0401D40',CL8'00000000' -A06WD3 DC XL5'1DF0401D40',CL8'00000000' -A06WD4 DC XL5'1DF0401D40',CL8'00000000' - DC X'1DF0401D40',C'*' -A06TR DC CL16' ' - DC C'*',X'1DF040' -A06DSP DC CL6'000060' -* -A07ADR DC X'114B501DF0',CL6'000000' -A07WD1 DC XL5'1DF0401D40',CL8'00000000' -A07WD2 DC XL5'1DF0401D40',CL8'00000000' -A07WD3 DC XL5'1DF0401D40',CL8'00000000' -A07WD4 DC XL5'1DF0401D40',CL8'00000000' - DC X'1DF0401D40',C'*' -A07TR DC CL16' ' - DC C'*',X'1DF040' -A07DSP DC CL6'000070' -* -A08ADR DC X'114C601DF0',CL6'000000' -A08WD1 DC XL5'1DF0401D40',CL8'00000000' -A08WD2 DC XL5'1DF0401D40',CL8'00000000' -A08WD3 DC XL5'1DF0401D40',CL8'00000000' -A08WD4 DC XL5'1DF0401D40',CL8'00000000' - DC X'1DF0401D40',C'*' -A08TR DC CL16' ' - DC C'*',X'1DF040' -A08DSP DC CL6'000080' -* -A09ADR DC X'114DF01DF0',CL6'000000' -A09WD1 DC XL5'1DF0401D40',CL8'00000000' -A09WD2 DC XL5'1DF0401D40',CL8'00000000' -A09WD3 DC XL5'1DF0401D40',CL8'00000000' -A09WD4 DC XL5'1DF0401D40',CL8'00000000' - DC X'1DF0401D40',C'*' -A09TR DC CL16' ' - DC C'*',X'1DF040' -A09DSP DC CL6'000090' -* -A0AADR DC X'114F401DF0',CL6'000000' -A0AWD1 DC XL5'1DF0401D40',CL8'00000000' -A0AWD2 DC XL5'1DF0401D40',CL8'00000000' -A0AWD3 DC XL5'1DF0401D40',CL8'00000000' -A0AWD4 DC XL5'1DF0401D40',CL8'00000000' - DC X'1DF0401D40',C'*' -A0ATR DC CL16' ' - DC C'*',X'1DF040' -A0ADSP DC CL6'0000A0' -* -A0BADR DC X'1150501DF0',CL6'000000' -A0BWD1 DC XL5'1DF0401D40',CL8'00000000' -A0BWD2 DC XL5'1DF0401D40',CL8'00000000' -A0BWD3 DC XL5'1DF0401D40',CL8'00000000' -A0BWD4 DC XL5'1DF0401D40',CL8'00000000' - DC X'1DF0401D40',C'*' -A0BTR DC CL16' ' - DC C'*',X'1DF040' -A0BDSP DC CL6'0000B0' -* -A0CADR DC X'11D1601DF0',CL6'000000' -A0CWD1 DC XL5'1DF0401D40',CL8'00000000' -A0CWD2 DC XL5'1DF0401D40',CL8'00000000' -A0CWD3 DC XL5'1DF0401D40',CL8'00000000' -A0CWD4 DC XL5'1DF0401D40',CL8'00000000' - DC X'1DF0401D40',C'*' -A0CTR DC CL16' ' - DC C'*',X'1DF040' -A0CDSP DC CL6'0000C0' -* -A0DADR DC X'11D2F01DF0',CL6'000000' -A0DWD1 DC XL5'1DF0401D40',CL8'00000000' -A0DWD2 DC XL5'1DF0401D40',CL8'00000000' -A0DWD3 DC XL5'1DF0401D40',CL8'00000000' -A0DWD4 DC XL5'1DF0401D40',CL8'00000000' - DC X'1DF0401D40',C'*' -A0DTR DC CL16' ' - DC C'*',X'1DF040' -A0DDSP DC CL6'0000D0' -* -A0EADR DC X'11D4401DF0',CL6'000000' -A0EWD1 DC XL5'1DF0401D40',CL8'00000000' -A0EWD2 DC XL5'1DF0401D40',CL8'00000000' -A0EWD3 DC XL5'1DF0401D40',CL8'00000000' -A0EWD4 DC XL5'1DF0401D40',CL8'00000000' - DC X'1DF0401D40',C'*' -A0ETR DC CL16' ' - DC C'*',X'1DF040' -A0EDSP DC CL6'0000E0' -* -A0FADR DC X'11D5501DF0',CL6'000000' -A0FWD1 DC XL5'1DF0401D40',CL8'00000000' -A0FWD2 DC XL5'1DF0401D40',CL8'00000000' -A0FWD3 DC XL5'1DF0401D40',CL8'00000000' -A0FWD4 DC XL5'1DF0401D40',CL8'00000000' - DC X'1DF0401D40',C'*' -A0FTR DC CL16' ' - DC C'*',X'1DF040' -A0FDSP DC CL6'0000F0' -* - DC X'11D8C31DF8' -ERR DC CL50' ' - DC X'1DF040115A501DF8' - DC C'==>',X'1DC813' -CMDLINE DC CL75' ' - DC X'1DF040115CF01DF8' - DC C'PFKEYS 1=TOP 4=STORE 5=GOTO 6=REDISPLAY ' - DC C'7=BWD 8=FWD 9=CCWS 10=' -BRADDR DC C'BRANCH 12=QUIT' - DC X'1DF040' -ENDISPL EQU * - LTORG - EJECT -MAP DSECT -AID DS C -CURSOR DS XL2 -DATA DS CL1997 -* - END -