Вы находитесь на странице: 1из 11

DCL DD RESOLVE CHAR(34);

DCL DD RESOLVE-TYPE CHAR( 2) DEF(RESOLVE) POS( 1);


DCL DD RESOLVE-NAME CHAR(30) DEF(RESOLVE) POS( 3);
DCL DD RESOLVE-AUTH CHAR( 2) DEF(RESOLVE) POS(33) INIT(X'0000');
DCL DD THE-OBJECT CHAR(16) BDRY(16);
DCL SYSPTR .THE-OBJECT
DEF(THE-OBJECT)
DCL DD OBJ-SEGMENT CHAR(5) DEF(THE-OBJECT)
DCL DD OBJ-OFFSET CHAR(3) DEF(THE-OBJECT)
DCL DD OBJ-1ST-WORD CHAR(4) DEF(THE-OBJECT)
DCL DD OBJ-2ND-WORD CHAR(4) DEF(THE-OBJECT)

POS( 1);
POS( 9);
POS(14);
POS( 9);
POS(13);

DCL DD THE-ADDRESS CHAR(8) BDRY(8);


DCL DD THE-SEGMENT CHAR(5) DEF(THE-ADDRESS) POS(1);
DCL DD THE-OFFSET CHAR(3) DEF(THE-ADDRESS) POS(6);
DCL DD SGM-ERR BIN(2);
DCL DD OFF-ERR BIN(2);
DCL DD THE-ERR BIN(2);
DCL DD DATA-WORDS CHAR(16) BDRY(16);
DCL DD DATA-WORD(4) CHAR(4) DEF(DATA-WORDS) POS(1);
DCL DD DATA CHAR(256) BDRY(16);
DCL DD DATA-LINE(16) CHAR(16) DEF(DATA) POS(1);
DCL PTR .DATA-PTR (16)
DEF(DATA) POS(1);
DCL DD DATA-PTR CHAR(16) BDRY(16);
DCL SPCPTR .DATA
DEF(DATA-PTR) POS(1);
DCL DD DATA-ADDRESS CHAR(8) DEF(DATA-PTR) POS(9);
DCL SPCPTR .CONTROL INIT(CONTROL);
DCL DD CONTROL CHAR(21) BDRY(8);
DCL DD TO-ADDRESS CHAR(8) DEF(CONTROL)
DCL DD FROM-ADDRESS CHAR(8) DEF(CONTROL)
DCL DD NBR-OF-BYTES BIN(4) DEF(CONTROL)
DCL DD FEEDBACK
CHAR(1) DEF(CONTROL)

POS( 1);
POS( 9);
POS(17);
POS(21);

DCL OL
MIACCESS(.CONTROL) ARG;
DCL SYSPTR .MIACCESS;
DCL DD DISPLAYABLE-CHARS CHAR(256);
DCL DD * (16) CHAR(16) DEF(DISPLAYABLE-CHARS) POS(1) INIT
(X'B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3', /* B3 is a fat dot */
X'B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3',
X'B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3',
X'B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3',
X'40B342434445464748494A4B4C4D4E4F',
X'505152535455565758595A5B5C5D5E5F',
X'606162636465666768696A6B6C6D6E6F',
X'707172737475767778797A7B7C7D7E7F',
X'808182838485868788898A8B8C8D8E8F',
X'909192939495969798999A9B9C9D9E9F',
X'A0A1A2A3A4A5A6A7A8A9AAABACADAEAF',
X'B0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF',
X'C0C1C2C3C4C5C6C7C8C9CACBCCCDCECF',
X'D0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF',
X'E0B3E2E3E4E5E6E7E8E9EAEBECEDEEEF',
X'F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEB3');

DCL DD THE-ATTR CHAR(1);


DCL DD SYSPTR CHAR(1) INIT(X'01');
DCL DD SPCPTR CHAR(1) INIT(X'02');
DCL DD PCO CHAR(256) BASPCO;
DCL DD PCO-POINTER CHAR(16) BDRY(16);
DCL SPCPTR .PCO
DEF(PCO-POINTER) POS(1);
DCL DD PCO-ADDRESS CHAR(8) DEF(PCO-POINTER) POS(9);
DCL
DCL
DCL
DCL

DD
DD
DD
DD

STACKED-SEGMENT(500) CHAR(10);
STACKED-OFFSET (500) CHAR( 6);
STACKED-CURSOR (500) CHAR( 5);
STACK-TOP BIN(2);

ENTRY * EXT;
CPYBLA
CPYBLAP
RSLVSP

RESOLVE-TYPE, X'0201';
RESOLVE-NAME, "MIACCESS", " ";
.MIACCESS, RESOLVE, *, *;

SETSPP
CPYBLA
CPYNV

.DATA, DATA;
TO-ADDRESS, DATA-ADDRESS;
NBR-OF-BYTES, 256;

SETSPP
CPYNV

.PCO, PCO;
STACK-TOP, 0;

CPYBLAP
RSLVSP

RESOLVE-NAME, "MISCRNIO", " ";


.MISCRNIO, RESOLVE, *, *;

CPYBLA
CALLX
CPYBREP

CTRL-OPCODE, "OPEN";
.MISCRNIO, MISCRNIO, *;
CTRL-CURSOR-POSITION, "0";

SHOW-THE-SCREEN:
CPYBLA
CTRL-OPCODE, "WRITE";
CALLX
.MISCRNIO, MISCRNIO, *;
CPYBREP
CPYBLA
GET-THE-SCREEN:
CPYBLA
CALLX
CMPNV(B)
CMPNV(B)

S-MESSAGE, " ";


A-MESSAGE, "B"; /* blank */
CTRL-OPCODE, "READ";
.MISCRNIO, MISCRNIO, *;
CTRL-CMD-KEY, 3/EQ(DONE);
CTRL-CMD-KEY,10/EQ(HOME);

VERIFY-THE-ADDRESS:
XLATE
S-SEGMENT, S-SEGMENT, " ", "0";
VERIFY
SGM-ERR, S-SEGMENT, "0123456789ABCDEF";
XLATE
S-OFFSET, S-OFFSET, " ", "0";
VERIFY
OFF-ERR, S-OFFSET, "0123456789ABCDEF";
ADDN(B)
THE-ERR, SGM-ERR, OFF-ERR/POS(BAD-ADDRESS);
CVTCH
CPYBLA
CVTCH

THE-SEGMENT, S-SEGMENT;
S-OFFSET(6:1), "0";
THE-OFFSET, S-OFFSET;

CHECK-FUNCTION-KEY:
CMPNV(B)
CTRL-CMD-KEY, 0/EQ(ENTER);
CMPNV(B)
CTRL-CMD-KEY, 2/EQ(DISASSEMBLE);

CMPNV(B)
CMPNV(B)
CMPNV(B)
CMPNV(B)
CMPNV(B)
CMPNV(B)

CTRL-CMD-KEY, 4/EQ(LOOK);
CTRL-CMD-KEY, 9/EQ(TIME);
CTRL-CMD-KEY,12/EQ(UNSTACK);
CTRL-CMD-KEY,17/EQ(TOP);
CTRL-CMD-KEY,27/EQ(PAGE-UP);
CTRL-CMD-KEY,28/EQ(PAGE-DOWN);

FUNCTION-KEY-NOT-USED:
CPYBLAP
S-MESSAGE, "Function key not used", " ";
B
SHOW-ERROR-MESSAGE;
ENTER:
CMPBLAP(B)
CMPBLAP(B)
CMPNV(B)

S-SEGMENT, "0", "0"/EQ(HOME);


S-OBJECT, " ", " "/EQ(BUILD-SCREEN);
CTRL-CURSOR-ROW, 4/HI(BUILD-SCREEN);

RESOLVE-TO-OBJECT:
CMPBLAP(B) S-TYPE, " ", " "/NEQ(=+2);
CPYBLA
S-TYPE, "0201";:/* Default = *PGM */
XLATE
S-TYPE, S-TYPE, " ", "0";
VERIFY(B)
THE-ERR, S-TYPE, "0123456789ABCDEF"/POS(BAD-TYPE);
CVTCH
CPYBLA
RSLVSP

RESOLVE-TYPE, S-TYPE;
RESOLVE-NAME, S-OBJECT;
.THE-OBJECT, RESOLVE, *, *;

SHOW-BASED-ON-SYSTEM-PTR:
CPYBREP
OBJ-OFFSET, X'00';
SHOW-BASED-ON-ADDRESS:
CVTHC
S-SEGMENT, OBJ-SEGMENT;
CVTHC
S-OFFSET , OBJ-OFFSET;
BUILD-SCREEN:
CPYBLAP
CVTCH
CPYBLA
CVTCH

S-MORE, "More...", " ";


THE-SEGMENT, S-SEGMENT;
S-OFFSET(6:1), "0";
THE-OFFSET, S-OFFSET;

GET-DATA-TO-SHOW:
CPYBLA
FROM-ADDRESS, THE-ADDRESS;
CALLX
.MIACCESS, MIACCESS, *;
CMPBLA(B)
FEEDBACK, " "/NEQ(CANNOT-ACCESS);
CPYNV
LINE-NBR, 1;
BUILD-SCREEN-LINE:
CMPNV(B)
LINE-NBR, SCREEN-LINES/HI(SHOW-THE-SCREEN);
CPYBLA
DATA-WORDS, DATA-LINE(LINE-NBR);
CPYBREP
S-DESCR (LINE-NBR), " ";
CPYBLA
THE-ATTR, "j";
CMPPTRT(B) .DATA-PTR(LINE-NBR), */EQ(=+2);
CALLI
GET-POINTER-DESCR, *, .GET-POINTER-DESCR;:
XLATEWT

S-TEXT (LINE-NBR), DATA-WORDS, DISPLAYABLE-CHARS;

CPYBLA
CVTHC
CPYBLA
CVTHC
CPYBLA

A-WORD1
S-WORD1
A-WORD2
S-WORD2
A-WORD3

(LINE-NBR),
(LINE-NBR),
(LINE-NBR),
(LINE-NBR),
(LINE-NBR),

THE-ATTR;
DATA-WORD(1);
THE-ATTR;
DATA-WORD(2);
THE-ATTR;

CVTHC
CPYBLA
CVTHC

S-WORD3 (LINE-NBR), DATA-WORD(3);


A-WORD4 (LINE-NBR), THE-ATTR;
S-WORD4 (LINE-NBR), DATA-WORD(4);

CVTHC
ADDLC(S)
ADDN(SB)

S-WHERE (LINE-NBR), THE-OFFSET;


THE-OFFSET, X'000010';
LINE-NBR, 1/POS(BUILD-SCREEN-LINE);

PAGE-UP:
CMPBLA(B)
TOP:
CPYBLA
SUBLC(S)

THE-OFFSET, X'000100'/HI(=+2);
THE-OFFSET, X'000100';:
THE-OFFSET, X'000100';

SET-OFFSET:
CVTHC
B

S-OFFSET, THE-OFFSET;
BUILD-SCREEN;

PAGE-DOWN:
CMPBLA(B)
CPYBLA
ADDLC(S)
B

THE-OFFSET, X'FFFF00'/NHI(=+2);
THE-OFFSET, X'FFFF00';:
THE-OFFSET, X'000100';
SET-OFFSET;

DONE:
CPYBLA
CALLX
RTX

CTRL-OPCODE, "CLOSE";
.MISCRNIO, MISCRNIO, *;
*;

HOME:
CPYNV
CPYBLA
CPYBREP

STACK-TOP, 0;
THE-ADDRESS, PCO-ADDRESS;
THE-OFFSET, X'00';

SET-PCS-ADDR:
CVTHC
CVTHC
B

S-SEGMENT, THE-SEGMENT;
S-OFFSET , THE-OFFSET ;
BUILD-SCREEN;

LOOK:
CALLI

CHECK-WITHIN-AREA, *, .CHECK-WITHIN-AREA;

CMPNV(B)
ADDN(S)
CPYBLA
CPYBLA
CPYBLA

STACK-TOP, 500/NLO(=+2);
STACK-TOP, 1;:
STACKED-SEGMENT(STACK-TOP), S-SEGMENT;
STACKED-OFFSET (STACK-TOP), S-OFFSET;
STACKED-CURSOR (STACK-TOP), CTRL-CURSOR-POSITION;

CMPPTRT(B) .DATA-PTR(LINE-NBR), */NEQ(LOOK-VIA-POINTER);


CMPNV(B)
CTRL-CURSOR-COL,27/HI(LOOK-RIGHT-HAND-SIDE);
LOOK-LEFT-HAND-SIDE:
CPYBLA
OBJ-1ST-WORD, DATA-WORD(1);
CPYBLA
OBJ-2ND-WORD, DATA-WORD(2);
B
SHOW-BASED-ON-ADDRESS;
LOOK-RIGHT-HAND-SIDE:
LOOK-VIA-POINTER:
CPYBLA
OBJ-1ST-WORD, DATA-WORD(3);
CPYBLA
OBJ-2ND-WORD, DATA-WORD(4);

CMPPTRT(B) .DATA-PTR(LINE-NBR), SYSPTR/


EQ(SHOW-BASED-ON-SYSTEM-PTR),
NEQ(SHOW-BASED-ON-ADDRESS);
DCL INSPTR .CHECK-WITHIN-AREA;
ENTRY
CHECK-WITHIN-AREA INT;
SUBN(B)
LINE-NBR, CTRL-CURSOR-ROW, 5/NPOS(OUTSIDE-AREA);
CMPNV(B)
LINE-NBR, SCREEN-LINES
/HI(OUTSIDE-AREA);
CMPNV(B)
CMPNV(B)
CPYBLA
B

CTRL-CURSOR-COL,10/LO(OUTSIDE-AREA);
CTRL-CURSOR-COL,45/HI(OUTSIDE-AREA);
DATA-WORDS, DATA-LINE(LINE-NBR);
.CHECK-WITHIN-AREA;

OUTSIDE-AREA:
CPYBLAP
B

S-MESSAGE, "Place cursor first..", " ";


SHOW-ERROR-MESSAGE;

UNSTACK:
CMPNV(B)
CPYBLA
CPYBLA
CPYBLA
SUBN(SB)

STACK-TOP, 1/LO(HOME);
S-SEGMENT, STACKED-SEGMENT(STACK-TOP);
S-OFFSET, STACKED-OFFSET (STACK-TOP);
CTRL-CURSOR-POSITION, STACKED-CURSOR(STACK-TOP);
STACK-TOP, 1/NNAN(BUILD-SCREEN);

DCL DD THE-TIME CHAR(8);


DCL DD THE-TIME-HI BIN(4) UNSGND DEF(THE-TIME) POS(1);
DCL DD THE-TIME-LO BIN(4) UNSGND DEF(THE-TIME) POS(5);
DCL
DCL
DCL
DCL
DCL
DCL
DCL
DCL
DCL
DCL

DD
DD
DD
DD
DD
DD
DD
DD
DD
DD

TIMESTAMP
PKD(21,0); /* CAN HOLD 64-BIT UNSIGNED */
TWO**32
PKD(11,0) INIT(P'4294967296');
NBR-SECONDS PKD(15,0);
NBR-DAYS
BIN(4);
NBR-YEARS
BIN(4);
ADD-YEARS
BIN(4);
NBR-PERIODS BIN(4);
DAY-MONTH
BIN(4);
D
BIN(4);
M
BIN(4);
/* DAY BASE FOR: JanFebMarAprMayJunJulAugSepOctNovDec*/
DCL DD DAYS CHAR(36) INIT("000031059090120151181212243273304334");
DCL DD DAYS-ACCUM (12)ZND(3,0) DEF(DAYS) POS(1);
DCL DD FORMATTED-TIME CHAR(20);
DCL DD YEAR ZND(4,0) DEF(FORMATTED-TIME)
DCL DD *
CHAR( 1) DEF(FORMATTED-TIME)
DCL DD MONTH ZND(2,0) DEF(FORMATTED-TIME)
DCL DD *
CHAR( 1) DEF(FORMATTED-TIME)
DCL DD DAY ZND(2,0) DEF(FORMATTED-TIME)
DCL DD *
CHAR( 2) DEF(FORMATTED-TIME)
DCL DD HOUR ZND(2,0) DEF(FORMATTED-TIME)
DCL DD *
CHAR( 1) DEF(FORMATTED-TIME)
DCL DD MIN ZND(2,0) DEF(FORMATTED-TIME)
DCL DD *
CHAR( 1) DEF(FORMATTED-TIME)
DCL DD SEC ZND(2,0) DEF(FORMATTED-TIME)
TIME:
CALLI
CMPNV(B)

POS( 1);
POS( 5) INIT("/");
POS( 6);
POS( 8) INIT("/");
POS( 9);
POS(11) INIT(" ");
POS(13);
POS(15) INIT(":");
POS(16);
POS(18) INIT(":");
POS(19);

CHECK-WITHIN-AREA, *, .CHECK-WITHIN-AREA;
CTRL-CURSOR-COL,27/HI(TIME-RIGHT-HAND-SIDE);

TIME-LEFT-HAND-SIDE:
CPYBLA
THE-TIME-HI, DATA-WORD(1);
CPYBLA
THE-TIME-LO, DATA-WORD(2);
B
CONVERT-AND-SHOW-TIME;
TIME-RIGHT-HAND-SIDE:
CPYBLA
THE-TIME-HI, DATA-WORD(3);
CPYBLA
THE-TIME-LO, DATA-WORD(4);
CONVERT-AND-SHOW-TIME:
CMPBLA(B)
THE-TIME, X'50'/LO(NOT-A-TIME);
MULT
TIMESTAMP, THE-TIME-HI, TWO**32;
ADDN(S)
TIMESTAMP, THE-TIME-LO;
DIV(SR)
TIMESTAMP, 4096000000;
/* NOW SECONDS
ADDN(S)
TIMESTAMP, 43386;
/* 12:03:06 PM
DIVREM
NBR-DAYS, TIMESTAMP, 86400, NBR-SECONDS;
SUBN(S)
NBR-DAYS, 131;/* WAS: AUG 23,1928, NOW: JAN 01,1929
DIVREM
NBR-PERIODS, NBR-DAYS, 1461, NBR-DAYS; /* 4 YEARS
MULT
NBR-YEARS, NBR-PERIODS, 4;
ADDN(S)
NBR-YEARS, 1929;
DIVREM
ADD-YEARS, NBR-DAYS, 365, NBR-DAYS;
ADDN
YEAR, NBR-YEARS, ADD-YEARS;
CPYNV
M, 13;
CMPNV(B)
ADD-YEARS, 3/LO(FIND-MONTH);
LEAP-YEAR:
CMPNV(B)
NBR-DAYS, 59/LO(FIND-MONTH),EQ(FEB-29TH);
SUBN(S)
NBR-DAYS, 1;
FIND-MONTH:
SUBN(S)
M, 1;
SUBN(B)
DAY-MONTH, NBR-DAYS, DAYS-ACCUM(M)/NEG(FIND-MONTH);
ADDN
DAY, DAY-MONTH, 1;
CPYNV(B)
MONTH, M/NNAN(COMPUTE-TIME);
FEB-29TH:
CPYNV
MONTH, 2;
CPYNV
DAY, 29;
COMPUTE-TIME:
DIVREM
DIVREM
CPYBLAP
B

HOUR, NBR-SECONDS, 3600, NBR-SECONDS;


MIN, NBR-SECONDS, 60, SEC;
S-MESSAGE, FORMATTED-TIME, " ";
SHOW-ERROR-MESSAGE;

NOT-A-TIME:
CPYBLAP
B

S-MESSAGE, "Not a time...", " ";


SHOW-ERROR-MESSAGE;

DISASSEMBLE:
CPYBLAP
B

S-MESSAGE, "Coming soon...", " ";


SHOW-ERROR-MESSAGE;

CANNOT-ACCESS:
CPYBLAP
B

S-MESSAGE, "Cannot access address...", " ";


SHOW-ERROR-MESSAGE;

DCL EXCM * EXCID(H'2200') BP(OBJECT-NOT-FOUND) CV(X'00000000') IMD;


OBJECT-NOT-FOUND:
CPYBLA
A-OBJECT, "e";
CPYBLA
A-TYPE, "e";
CPYBLAP
S-MESSAGE, "Object not found...", " ";

*/
*/
*/
*/

SHOW-ERROR-MESSAGE:
CPYBLA
A-MESSAGE, "T"; /* title */
B
SHOW-THE-SCREEN;
BAD-TYPE:
CPYBLA
CPYBLAP
B

A-TYPE, "e";
S-MESSAGE, "Invalid object type", " ";
SHOW-ERROR-MESSAGE;

BAD-ADDRESS:
CMPNV(B)
CPYBLA
CMPNV(B)
CPYBLA
CPYBLAP
B

SGM-ERR, 0/EQ(=+2);
A-SEGMENT, "g";:
OFF-ERR, 0/EQ(=+2);
A-OFFSET, "g";:
S-MESSAGE, "Invalid hexadecimal address", " ";
SHOW-ERROR-MESSAGE;

DCL DD TYPE-DESCR CHAR(468); /* 36 times 13 */


DCL DD TYPE-ENTRY(36) CHAR(13) DEF(TYPE-DESCR) POS(1) INIT
("01Access Grp ","02Program
","03Module
","04Library
",
"05? Ptr
","06Byte Spc ","07Journal
","08User Prf ",
"09Jrnl Port ","0AQueue
","0BData Space ","0CData Index ",
"0DCursor
","0EIndex
","0FCommit
","10Dev Descr ",
"11Line Descr ","12Ctrl Descr ","13Dump Space ","14Cls of Serv",
"15Mode
","16NetW Intf. ","17Conn. List ","18Queue Spc ",
"19Space
","1AProc Ctrl ","1BAuth List ","1CDictionary ",
"1DNetW Srv ","1EStream File","1FDistr. File","20SOM Object ",
"21Object Grp ","81Machine Ctx","85Stream Obj.","??System Ptr ");
DCL DD NBR BIN(2);
DCL DD THE-WORD CHAR(4);
DCL INSPTR .GET-POINTER-DESCR;
ENTRY
GET-POINTER-DESCR INT;
CPYBLA
THE-ATTR, "C"; /* Choice */
CPYBLAP
S-DESCR (LINE-NBR), "Pointer", " ";
CMPPTRT(B) .DATA-PTR(LINE-NBR), SPCPTR/NEQ(=+2);
CPYBLAP
S-DESCR (LINE-NBR), "Space Ptr", " ";:
CMPPTRT(B) .DATA-PTR(LINE-NBR), SYSPTR/NEQ(.GET-POINTER-DESCR);
CPYBLA
THE-ATTR, "O"; /* Option */
CPYBLA
THE-WORD, DATA-WORD(4);
CVTHC
TYPE-DESCR(456:2), THE-WORD(3:1); /* Type sentinel */
SCAN
NBR, TYPE-DESCR, TYPE-DESCR(456:2);
ADDN(S)
NBR, 2;
CPYBLAP
S-DESCR (LINE-NBR), TYPE-DESCR(NBR:11), " ";
B
.GET-POINTER-DESCR;
/************************* SCREEN DEFINITION ************************/
DCL SPCPTR .SCRN-CTRL INIT(SCRN-CTRL);
DCL DD SCRN-CTRL CHAR(8);
DCL DD CTRL-OPCODE
CHAR(1) DEF(SCRN-CTRL) POS(1);
DCL DD CTRL-CMD-KEY
ZND(2,0) DEF(SCRN-CTRL) POS(2);
DCL DD CTRL-CURSOR-POSITION CHAR(5) DEF(SCRN-CTRL) POS(4);
DCL DD CTRL-CURSOR-ROW ZND(2,0) DEF(CTRL-CURSOR-POSITION) POS(1);
DCL DD CTRL-CURSOR-COL ZND(3,0) DEF(CTRL-CURSOR-POSITION) POS(3);

DCL SPCPTR .SCREEN INIT(SCREEN);


DCL DD SCREEN
CHAR(10) INIT("T010320015");
DCL DD S-TITLE CHAR(15) INIT("AS/400 Explorer");
DCL DD *
CHAR(10) INIT("L010480000");
DCL DD *
DCL DD *
DCL DD A-OBJECT
DCL DD S-OBJECT
DCL DD *
DCL DD *
DCL DD A-TYPE
DCL DD S-TYPE

CHAR(10)
CHAR(30)
CHAR(10)
CHAR(30)
CHAR(10)
CHAR(06)
CHAR(10)
CHAR(04)

INIT("L030010030");
INIT("Object to explore . . . . . ");
INIT("i030320030");
INIT("
");
INIT("L030630006");
INIT(" Type ");
INIT("i030700004");
INIT("
");

DCL DD *
DCL DD *
DCL DD A-CONTEXT
DCL DD S-CONTEXT
DCL DD *
DCL DD *

CHAR(10)
CHAR(30)
CHAR(10)
CHAR(30)
CHAR(10)
CHAR(16)

INIT("L040010030");
INIT("Context . . . . . . . . . . ");
INIT("i040320030");
INIT("
");
INIT("L040630016");
INIT(" Name or blank ");

DCL DD *
DCL DD *
DCL DD A-SEGMENT
DCL DD S-SEGMENT
DCL DD A-OFFSET
DCL DD S-OFFSET
DCL DD *
DCL DD *

CHAR(10)
CHAR(07)
CHAR(10)
CHAR(10)
CHAR(10)
CHAR(06)
CHAR(10)
CHAR(02)

INIT("L050010007");
INIT("Address . . . . . . . . . . ");
INIT("q050090010");
INIT("
");
INIT("q050200006");
INIT("
");
INIT("S050270002");
INIT(" ");

DCL
DCL
DCL
DCL
DCL
DCL
DCL
DCL

DD
DD
DD
DD
DD
DD
DD
DD

*
@1
@2
@3
@4
*
*
*

CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)

INIT("L060010006");
INIT("j060090008");
INIT("j060180008");
INIT("j060280008");
INIT("j060370008");
INIT("U060480016");
INIT("L060650015");
INIT("L060800000");

DCL
DCL
DCL
DCL
DCL
DCL
DCL
/*

DD
DD
DD
DD
DD
DD
DD

S-WHERE@
S-WORD1@
S-WORD2@
S-WORD3@
S-WORD4@
S-TEXT@
S-DESCR@

CHAR(06);
CHAR(08);
CHAR(08);
CHAR(08);
CHAR(08);
CHAR(16);
CHAR(15);
SIZE 69 */

DCL
DCL
DCL
DCL
DCL
DCL
DCL
DCL

DD
DD
DD
DD
DD
DD
DD
DD

*
*
*
*
*
*
*
*

CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)

INIT("L070010006");
INIT("j070090008");
INIT("j070180008");
INIT("j070280008");
INIT("j070370008");
INIT("U070480016");
INIT("L070650015");
INIT("L070800000");

DCL
DCL
DCL
DCL
DCL
DCL
DCL

DD
DD
DD
DD
DD
DD
DD

*
*
*
*
*
*
*

CHAR(06);
CHAR(08);
CHAR(08);
CHAR(08);
CHAR(08);
CHAR(16);
CHAR(15);

DCL
DCL
DCL
DCL
DCL
DCL
DCL
DCL

DD
DD
DD
DD
DD
DD
DD
DD

*
*
*
*
*
*
*
*

CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)

INIT("L080010006");
INIT("j080090008");
INIT("j080180008");
INIT("j080280008");
INIT("j080370008");
INIT("U080480016");
INIT("L080650015");
INIT("L080800000");

DCL
DCL
DCL
DCL
DCL
DCL
DCL

DD
DD
DD
DD
DD
DD
DD

*
*
*
*
*
*
*

CHAR(06);
CHAR(08);
CHAR(08);
CHAR(08);
CHAR(08);
CHAR(16);
CHAR(15);

DCL DD * CHAR(10) INIT("L090010006"); DCL DD *


DCL DD * CHAR(10) INIT("j090090008"); DCL DD *
DCL DD * CHAR(10) INIT("j090180008"); DCL DD *

CHAR(06);
CHAR(08);
CHAR(08);

DCL
DCL
DCL
DCL
DCL

DD
DD
DD
DD
DD

*
*
*
*
*

CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)

INIT("j090280008");
INIT("j090370008");
INIT("U090480016");
INIT("L090650015");
INIT("L090800000");

DCL
DCL
DCL
DCL

DD
DD
DD
DD

*
*
*
*

CHAR(08);
CHAR(08);
CHAR(16);
CHAR(15);

DCL
DCL
DCL
DCL
DCL
DCL
DCL
DCL

DD
DD
DD
DD
DD
DD
DD
DD

*
*
*
*
*
*
*
*

CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)

INIT("L100010006");
INIT("j100090008");
INIT("j100180008");
INIT("j100280008");
INIT("j100370008");
INIT("U100480016");
INIT("L100650015");
INIT("L100800000");

DCL
DCL
DCL
DCL
DCL
DCL
DCL

DD
DD
DD
DD
DD
DD
DD

*
*
*
*
*
*
*

CHAR(06);
CHAR(08);
CHAR(08);
CHAR(08);
CHAR(08);
CHAR(16);
CHAR(15);

DCL
DCL
DCL
DCL
DCL
DCL
DCL
DCL

DD
DD
DD
DD
DD
DD
DD
DD

*
*
*
*
*
*
*
*

CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)

INIT("L110010006");
INIT("j110090008");
INIT("j110180008");
INIT("j110280008");
INIT("j110370008");
INIT("U110480016");
INIT("L110650015");
INIT("L110800000");

DCL
DCL
DCL
DCL
DCL
DCL
DCL

DD
DD
DD
DD
DD
DD
DD

*
*
*
*
*
*
*

CHAR(06);
CHAR(08);
CHAR(08);
CHAR(08);
CHAR(08);
CHAR(16);
CHAR(15);

DCL
DCL
DCL
DCL
DCL
DCL
DCL
DCL

DD
DD
DD
DD
DD
DD
DD
DD

*
*
*
*
*
*
*
*

CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)

INIT("L120010006");
INIT("j120090008");
INIT("j120180008");
INIT("j120280008");
INIT("j120370008");
INIT("U120480016");
INIT("L120650015");
INIT("L120800000");

DCL
DCL
DCL
DCL
DCL
DCL
DCL

DD
DD
DD
DD
DD
DD
DD

*
*
*
*
*
*
*

CHAR(06);
CHAR(08);
CHAR(08);
CHAR(08);
CHAR(08);
CHAR(16);
CHAR(15);

DCL
DCL
DCL
DCL
DCL
DCL
DCL
DCL

DD
DD
DD
DD
DD
DD
DD
DD

*
*
*
*
*
*
*
*

CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)

INIT("L130010006");
INIT("j130090008");
INIT("j130180008");
INIT("j130280008");
INIT("j130370008");
INIT("U130480016");
INIT("L130650015");
INIT("L130800000");

DCL
DCL
DCL
DCL
DCL
DCL
DCL

DD
DD
DD
DD
DD
DD
DD

*
*
*
*
*
*
*

CHAR(06);
CHAR(08);
CHAR(08);
CHAR(08);
CHAR(08);
CHAR(16);
CHAR(15);

DCL
DCL
DCL
DCL
DCL
DCL
DCL
DCL

DD
DD
DD
DD
DD
DD
DD
DD

*
*
*
*
*
*
*
*

CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)

INIT("L140010006");
INIT("j140090008");
INIT("j140180008");
INIT("j140280008");
INIT("j140370008");
INIT("U140480016");
INIT("L140650015");
INIT("L140800000");

DCL
DCL
DCL
DCL
DCL
DCL
DCL

DD
DD
DD
DD
DD
DD
DD

*
*
*
*
*
*
*

CHAR(06);
CHAR(08);
CHAR(08);
CHAR(08);
CHAR(08);
CHAR(16);
CHAR(15);

DCL
DCL
DCL
DCL
DCL
DCL
DCL
DCL

DD
DD
DD
DD
DD
DD
DD
DD

*
*
*
*
*
*
*
*

CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)

INIT("L150010006");
INIT("j150090008");
INIT("j150180008");
INIT("j150280008");
INIT("j150370008");
INIT("U150480016");
INIT("L150650015");
INIT("L150800000");

DCL
DCL
DCL
DCL
DCL
DCL
DCL

DD
DD
DD
DD
DD
DD
DD

*
*
*
*
*
*
*

CHAR(06);
CHAR(08);
CHAR(08);
CHAR(08);
CHAR(08);
CHAR(16);
CHAR(15);

DCL
DCL
DCL
DCL
DCL
DCL
DCL
DCL

DD
DD
DD
DD
DD
DD
DD
DD

*
*
*
*
*
*
*
*

CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)

INIT("L160010006");
INIT("j160090008");
INIT("j160180008");
INIT("j160280008");
INIT("j160370008");
INIT("U160480016");
INIT("L160650015");
INIT("L160800000");

DCL
DCL
DCL
DCL
DCL
DCL
DCL

DD
DD
DD
DD
DD
DD
DD

*
*
*
*
*
*
*

CHAR(06);
CHAR(08);
CHAR(08);
CHAR(08);
CHAR(08);
CHAR(16);
CHAR(15);

DCL
DCL
DCL
DCL
DCL
DCL
DCL
DCL

DD
DD
DD
DD
DD
DD
DD
DD

*
*
*
*
*
*
*
*

CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)

INIT("L170010006");
INIT("j170090008");
INIT("j170180008");
INIT("j170280008");
INIT("j170370008");
INIT("U170480016");
INIT("L170650015");
INIT("L170800000");

DCL
DCL
DCL
DCL
DCL
DCL
DCL

DD
DD
DD
DD
DD
DD
DD

*
*
*
*
*
*
*

CHAR(06);
CHAR(08);
CHAR(08);
CHAR(08);
CHAR(08);
CHAR(16);
CHAR(15);

DCL
DCL
DCL
DCL
DCL
DCL
DCL
DCL

DD
DD
DD
DD
DD
DD
DD
DD

*
*
*
*
*
*
*
*

CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)

INIT("L180010006");
INIT("j180090008");
INIT("j180180008");
INIT("j180280008");
INIT("j180370008");
INIT("U180480016");
INIT("L180650015");
INIT("L180800000");

DCL
DCL
DCL
DCL
DCL
DCL
DCL

DD
DD
DD
DD
DD
DD
DD

*
*
*
*
*
*
*

CHAR(06);
CHAR(08);
CHAR(08);
CHAR(08);
CHAR(08);
CHAR(16);
CHAR(15);

DCL
DCL
DCL
DCL
DCL
DCL
DCL
DCL

DD
DD
DD
DD
DD
DD
DD
DD

*
*
*
*
*
*
*
*

CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)

INIT("L190010006");
INIT("j190090008");
INIT("j190180008");
INIT("j190280008");
INIT("j190370008");
INIT("U190480016");
INIT("L190650015");
INIT("L190800000");

DCL
DCL
DCL
DCL
DCL
DCL
DCL

DD
DD
DD
DD
DD
DD
DD

*
*
*
*
*
*
*

CHAR(06);
CHAR(08);
CHAR(08);
CHAR(08);
CHAR(08);
CHAR(16);
CHAR(15);

DCL
DCL
DCL
DCL
DCL
DCL
DCL
DCL

DD
DD
DD
DD
DD
DD
DD
DD

*
*
*
*
*
*
*
*

CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)

INIT("L200010006");
INIT("j200090008");
INIT("j200180008");
INIT("j200280008");
INIT("j200370008");
INIT("U200480016");
INIT("L200650015");
INIT("L200800000");

DCL
DCL
DCL
DCL
DCL
DCL
DCL

DD
DD
DD
DD
DD
DD
DD

*
*
*
*
*
*
*

CHAR(06);
CHAR(08);
CHAR(08);
CHAR(08);
CHAR(08);
CHAR(16);
CHAR(15);

DCL
DCL
DCL
DCL
DCL
DCL
DCL
DCL

DD
DD
DD
DD
DD
DD
DD
DD

*
*
*
*
*
*
*
*

CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)
CHAR(10)

INIT("L210010006");
INIT("j210090008");
INIT("j210180008");
INIT("j210280008");
INIT("j210370008");
INIT("U210480016");
INIT("L210650015");
INIT("L210800000");

DCL
DCL
DCL
DCL
DCL
DCL
DCL

DD
DD
DD
DD
DD
DD
DD

*
*
*
*
*
*
*

CHAR(06);
CHAR(08);
CHAR(08);
CHAR(08);
CHAR(08);
CHAR(16);
CHAR(15);

DCL DD * CHAR(10) INIT("T220720007");


DCL DD S-MORE CHAR(07) INIT(" ");
DCL DD * CHAR(10) INIT("L220800000");
DCL DD * CHAR(10) INIT("U230010079");
DCL DD S-PFKEYS CHAR(79) INIT

/* INFORMATIONAL */

("F3=Exit F2=Disasm F4=Look F9=Time F10=PCS F12=Goback F17=Top");


DCL DD A-MESSAGE CHAR(10) INIT("T240010079"); /* MESSAGE LINE */
DCL DD S-MESSAGE CHAR(79);
DCL DD * CHAR(10) INIT(".000000000");

/* END OF SCREEN */

DCL SYSPTR .MISCRNIO;


DCL OL MISCRNIO(.SCRN-CTRL, .SCREEN);
DCL DD LINE-NBR
BIN(2);
DCL DD SCREEN-LINES BIN(2) INIT(16);
DCL
DCL
DCL
DCL
DCL
DCL
DCL
DCL
DCL
DCL
DCL

DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD

A-WORD1
A-WORD2
A-WORD3
A-WORD4
S-WHERE
S-WORD1
S-WORD2
S-WORD3
S-WORD4
S-TEXT
S-DESCR

(16)
(16)
(16)
(16)
(16)
(16)
(16)
(16)
(16)
(16)
(16)

CHAR(01)
CHAR(01)
CHAR(01)
CHAR(01)
CHAR(06)
CHAR(08)
CHAR(08)
CHAR(08)
CHAR(08)
CHAR(16)
CHAR(15)

DEF(@1
)
DEF(@2
)
DEF(@3
)
DEF(@4
)
DEF(S-WHERE@)
DEF(S-WORD1@)
DEF(S-WORD2@)
DEF(S-WORD3@)
DEF(S-WORD4@)
DEF(S-TEXT@ )
DEF(S-DESCR@)

POS(1)
POS(1)
POS(1)
POS(1)
POS(1)
POS(1)
POS(1)
POS(1)
POS(1)
POS(1)
POS(1)

AEO(149);
AEO(149);
AEO(149);
AEO(149);
AEO(149);
AEO(149);
AEO(149);
AEO(149);
AEO(149);
AEO(149);
AEO(149);

Вам также может понравиться