DataMuseum.dk

Presents historical artifacts from the history of:

Philips Data Systems

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Philips Data Systems

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦60a2e22d0⟧

    Length: 10860 (0x2a6c)
    Notes: pts_type(SC)
    Names: »UDM.SC«

Derivation

└─⟦cd4bbebb4⟧ Bits:30009680 Philips computer tape "600221"
    └─⟦this⟧ »ATM/UDM.SC« 

PTS(SC)

 IDENT UDM 830330 NJ
* 
************************************************************************
* 
*        THE FUNCTION OF THESE ROUTINES IS TO PROVIDE AN
*        INTERFACE BETWEEN THE UTILITY PACKAGE AND THE
*        FILE MANAGEMENT INTERFACE. 
* 
************************************************************************
* 
*        THE CALLS TO THESE ROUTINES HAVE THE FOLLOWING FORMATS :-
* 
*        PERF    OPEN,<FILIND>,<STATUS> 
*        PERF    CLOSE,<FILIND> 
*        PERF    READ,<FILIND>,<BUF>,<RECNO>,<STATUS> 
*        PERF    WRITDK <FILIND>,<BUF>,<RECNO>,<STATUS> 
* 
* 
*        WHERE: 
* 
*                <FILIND>      IS A BINARY DATA ITEM WHICH IS USED
*                              AS A POINTER TO AN ENTRY IN THE
*                              TABLE 'DSFTABLE'. THIS TABLE CONTAINS
*                              THE FILE NAME, THE VOLUME NAME, THE
*                              FILE NUMBER ASSIGNED WHEN THE FILE 
*                              OPENED AND THE FILE RECORD LENGTH. 
* 
*                <STATUS>      IS A BINARY DATA ITEM WHICH WILL 
*                              CONTAIN THE RETURN CODE AFTER THE
*                              REQUEST. 
* 
*                <BUF>         IS A STRING DATA ITEM CONTAINING THE 
*                              DATA TO BE READ/WRITEN FROM/TO THE FILE. 
* 
*                <RECNO>       IS A BINARY DATA ITEM CONTAINING THE 
*                              FILE RECORD NUMBER TO BE ACCESSED. 
* 
* 
*        THE CREDIT CONDITION REGISTER WILL BE SET TO ZERO IF THE 
*        REQUEST WAS SUCCESSFUL AND TWO IF NOT. 
*        THE CREDIT CONDITION REGISTER WILL BE SET TO ONE IF A
*        DELETED RECORD IS READ.
* 
************************************************************************
* 
	EJECT
 DDUM DDIV
	PDIV 
* 
* 
***      ENTRY POINTS 
* 
	ENTRY	OPEN 
	ENTRY	CLOSE
	ENTRY	READ 
* 
***      EXTERNAL REFERENCES
* 
	EXT	FMOPEN 
	EXT	FMCLOS 
	EXT	FMREAD 
	EXT	FMRFPB 
	EXT	COPY4
* 
	EJECT
* 
OPEN PROC FILIND,ST 
 PBIN FILIND,ST 
************************************************************************
* 
*        THIS ROUTINE OPENS A DISK FILE FOR ACCESS BY ANY TASK
*        THE FILE NAME AND VOLUME NAME ARE EXTRACTED FROM THE 
*        TABLE 'DSFTABLE' TO FORM A FILE PARAMETER BLOCK. THE 
*        FILE MANAGEMENT ROUTINES ASSIGN A FILE NUMBER TO THE 
*        FILE AND THIS IS STORED IN THE TABLE 'DSFTABLE' ON 
*        SUCCESSFUL COMPLETION OF THE OPEN
* 
************************************************************************
* 
	COPY	FILE,COB0,COB8,DSFTABLE(FILIND),COB0	  :GET FILE NAME 
	COPY	VOLUME,COB0,COB6,DSFTABLE(FILIND),COB8	 :GET VOLUME NAME
	MOVE	DKSTAT,=C' '
	EDIT	FMBUF,FMTFPB	SET UP FILE PARAMETER BLOCK
	CALL	FMOPEN,WKBIN1,FMBUF,ST	  :OPEN FILE 
	BNOK	OPENERR	OPEN SUCCESSFUL ? 
	CALL	COPY4,WKBIN2,COB0,COB1,WKBIN1,COB3	     COPY FILE NO. 
	CALL	FMRFPB,WKBIN1,FMBUF,ST
	BNOK	OPENERR 
	CALL	COPY4,WKBIN2,COB1,COB3,FMBUF,COB1 
	XCOPY	DSFTABLE(FILIND),COB14,COB2,WKBIN2,COB0	  RECOPY IT
	CMP	COB0,COB0	SET CR = 0 
	RET		RETURN TO APPLICATION 
OPENERR 
	CMP	COB0,COB1	SET CR = 2 
	RET		RETURN TO APPLICATION 
	PEND 
	EJECT
CLOSE	PROC	FILIND 
	PBIN	FILIND
* 
************************************************************************
* 
*        THIS ROUTINE CLOSES A FILE.
*        PARAMETERS AS FOR OPEN.
* 
************************************************************************
* 
	COPY	FILE,COB0,COB8,DSFTABLE(FILIND),COB0	   :GET FILE NAME
	COPY	VOLUME,COB0,COB6,DSFTABLE(FILIND),COB8	 :GET VOLUME NAME
	MOVE	DKSTAT,=C' '
	MOVE	WKBIN1,COB0	ZERO WKBIN1 
 MOVE BIN7,=W'28' 
	CALL	COPY4,WKBIN1,COB3,COB1,DSFTABLE(FILIND),BIN7
	EDIT	FMBUF,FMTFPB	SET UP FILE PARAMETER BLOCK
	CALL	FMCLOS,WKBIN1,FMBUF,WKBIN2	CLOSE FILE 
	XCOPY	WKBIN1,COB0,COB2,DSFTABLE(FILIND),COB14
	CALL	COPY4,WKBIN1,COB0,COB1,COB0,COB3
	XCOPY	DSFTABLE(FILIND),COB14,COB2,WKBIN1,COB0
	MOVE	WKBIN1,COB0 
LOOP	ADD	WKBIN1,COB1
	CBG	WKBIN1,NOFILS,END
	COPY	WKSTR6,COB0,COB6,DSFTABLE(WKBIN1),COB8	GET VOLUME NAME
	CBNE	WKSTR6,VOLUME,LOOP	THIS VOLUME ?
	XCOPY	WKBIN2,COB0,COB2,DSFTABLE(WKBIN1),COB14	YES
	MOVE	WKB1,COB0 
	CALL	COPY4,WKB1,COB3,COB1,WKBIN2,COB0	 GET FILE NUMBER 
 CBNE WKB1,COB0,LOOP FILE STILL OPEN
END 
	RET		RETURN
	PEND 
	EJECT
* 
READ	PROC	FILIND,BUF,REC.NO,ST
	PBIN	FILIND,REC.NO,ST
	PSTRG	BUF
* 
************************************************************************
* 
*        THIS ROUTINE READS A RECORD FROM A DISK FILE 
* 
************************************************************************
* 
	PERF	GETBLK,FILIND,REC.NO,ST	  GET DISK SECTOR 
	B	RDERR
	MOVE	BUF,=C' ' 
	MOVE	WKBIN1,RECLEN	SET UP RECORD LENGTH
	COPY	BUF,COB0,WKBIN1,FMBUF,WKBIN2	COPY DATA
	ADD	WKBIN2,WKBIN1
	MOVE	DKSTAT,=X'00' 
	COPY	DKSTAT,COB0,COB1,FMBUF,WKBIN2	  GET RECORD STATUS CODE
	CBNE	DKSTAT,=X'00000000',NOTMT	EMPTY RECORD? 
	MOVE	BUF,=C' '	YES 
	CMP	COB1,COB0	SET CR = 1 
	RET		RETURN TO APPLICATION 
NOTMT 
	CMP	COB0,COB0	SET CR = 0 
	RET		RETURN TO APPLICATION 
RDERR 
	CMP	COB0,COB1	SET CR = 2 
	RET		RETURN TO APPLICATION 
	PEND 
	EJECT
* 
GETBLK	PROC	FILIND,REC.NO,ST
	PBIN	FILIND,REC.NO,ST
* 
************************************************************************
* 
*        THIS ROUTINE READS THE SECTOR CONTAINING THE RECORD POINTED
*        TO BY REC.NO FROM THE FILE POINTED TO BY FILIND. 
* 
************************************************************************
* 
	XCOPY	WKBIN1,COB0,COB2,DSFTABLE(FILIND),COB14
	MOVE	RECLEN,COB0 
	MOVE	FN,COB0 
	CALL	COPY4,RECLEN,COB1,COB3,WKBIN1,COB1
	ADD	RECLEN,COB1	ALLOW FOR RECORD STATUS BYTE 
	CALL	COPY4,FN,COB3,COB1,WKBIN1,COB0
	MOVE	WKBIN4,=W'256'
	MOVE	WKBIN3,RECLEN 
	DIV	WKBIN4,WKBIN3
	MOVE	WKBIN3,REC.NO 
	SUB	WKBIN3,=W'1'	COUNT FROM ZERO 
	DIV	WKBIN3,WKBIN4
	MOVE	SECTNO,WKBIN3 
	ADD	SECTNO,COB1	SECTNO = SECTOR TO BE READ 
	MUL	WKBIN3,WKBIN4
	MOVE	WKBIN1,WKBIN3 
	MOVE	WKBIN2,REC.NO 
	SUB	WKBIN2,COB1	COUNT FROM ZERO
	SUB	WKBIN2,WKBIN1	WKBIN2 = RECORD NO IN BLOCK
	MUL	WKBIN2,RECLEN
	MOVE	LENGTH,=W'256'
	SUB	RECLEN,COB1
	CALL	FMREAD,FN,FMBUF,LENGTH,SECTNO,ST
	BNOK	GETERR
	RET	2
GETERR
	RET		RETURN
* 
	PEND 
* 
	EJECT
* 
************************************************************************
* 
*        FORMATS
* 
************************************************************************
* 
FMTFPB	FRMT 
	FXCOPY	DKSTAT
	FXCOPY	=X'00000000'
	FCOPY	FILE 
	FXCOPY	=X'0000'
	FCOPY	VOLUME 
	FXCOPY	=X'00000000'
	FILLR	' ',30 
	FXCOPY	=X'00000000000000'
	FXCOPY	=X'0000000000'
	FILLR	' ',9
	FXCOPY	=X'00'
	FMEND
* 
	END

HexDump

0x0000…001c (0, 0, 398)  Head {h00=0x0018, h01=0x0050, text=» IDENT UDM 830330 NJ«, t00=0x0000, t01=0x0004}
0x001c…0026              Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x0000, t01=0x0020}
0x0026…0076              Head {h00=0x004c, h01=0x0050, text=»************************************************************************«, t00=0x0000, t01=0x002a}
0x0076…0080              Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x0000, t01=0x007a}
0x0080…00c0              Head {h00=0x003c, h01=0x0050, text=»*        THE FUNCTION OF THESE ROUTINES IS TO PROVIDE AN«, t00=0x0000, t01=0x0084}
0x00c0…00fe              Head {h00=0x003a, h01=0x0050, text=»*        INTERFACE BETWEEN THE UTILITY PACKAGE AND THE«, t00=0x0000, t01=0x00c4}
0x00fe…012a              Head {h00=0x0028, h01=0x0050, text=»*        FILE MANAGEMENT INTERFACE. «, t00=0x0000, t01=0x0102}
0x012a…0134              Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x0000, t01=0x012e}
0x0134…0184              Head {h00=0x004c, h01=0x0050, text=»************************************************************************«, t00=0x0000, t01=0x0138}
0x0184…018e              Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x0000, t01=0x0188}
0x018e…01d8 (1, 0, 400)  Head {h00=0x0046, h01=0x0050, text=»*        THE CALLS TO THESE ROUTINES HAVE THE FOLLOWING FORMATS :-«, t00=0x0001, t01=0x0004}
0x01d8…01e2              Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x0001, t01=0x004e}
0x01e2…0212              Head {h00=0x002c, h01=0x0050, text=»*        PERF    OPEN,<FILIND>,<STATUS> «, t00=0x0001, t01=0x0058}
0x0212…023a              Head {h00=0x0024, h01=0x0050, text=»*        PERF    CLOSE,<FILIND> «, t00=0x0001, t01=0x0088}
0x023a…0278              Head {h00=0x003a, h01=0x0050, text=»*        PERF    READ,<FILIND>,<BUF>,<RECNO>,<STATUS> «, t00=0x0001, t01=0x00b0}
0x0278…02b8              Head {h00=0x003c, h01=0x0050, text=»*        PERF    WRITDK <FILIND>,<BUF>,<RECNO>,<STATUS> «, t00=0x0001, t01=0x00ee}
0x02b8…02c2              Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x0001, t01=0x012e}
0x02c2…02cc              Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x0001, t01=0x0138}
0x02cc…02e4              Head {h00=0x0014, h01=0x0050, text=»*        WHERE: «, t00=0x0001, t01=0x0142}
0x02e4…02ee              Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x0001, t01=0x015a}
0x02ee…0338              Head {h00=0x0046, h01=0x0050, text=»*                <FILIND>      IS A BINARY DATA ITEM WHICH IS USED«, t00=0x0001, t01=0x0164}
0x0338…037e              Head {h00=0x0042, h01=0x0050, text=»*                              AS A POINTER TO AN ENTRY IN THE«, t00=0x0002, t01=0x001e}
0x037e…03ca              Head {h00=0x0048, h01=0x0050, text=»*                              TABLE 'DSFTABLE'. THIS TABLE CONTAINS«, t00=0x0002, t01=0x0064}
0x03ca…0414              Head {h00=0x0046, h01=0x0050, text=»*                              THE FILE NAME, THE VOLUME NAME, THE«, t00=0x0002, t01=0x00b0}
0x0414…045e              Head {h00=0x0046, h01=0x0050, text=»*                              FILE NUMBER ASSIGNED WHEN THE FILE «, t00=0x0002, t01=0x00fa}
0x045e…04a8              Head {h00=0x0046, h01=0x0050, text=»*                              OPENED AND THE FILE RECORD LENGTH. «, t00=0x0002, t01=0x0144}
0x04a8…04b2              Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x0002, t01=0x018e}
0x04b2…04fa              Head {h00=0x0044, h01=0x0050, text=»*                <STATUS>      IS A BINARY DATA ITEM WHICH WILL «, t00=0x0003, t01=0x0008}
0x04fa…0542              Head {h00=0x0044, h01=0x0050, text=»*                              CONTAIN THE RETURN CODE AFTER THE«, t00=0x0003, t01=0x0050}
0x0542…0572              Head {h00=0x002c, h01=0x0050, text=»*                              REQUEST. «, t00=0x0003, t01=0x0098}
0x0572…057c              Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x0003, t01=0x00c8}
0x057c…05c8              Head {h00=0x0048, h01=0x0050, text=»*                <BUF>         IS A STRING DATA ITEM CONTAINING THE «, t00=0x0003, t01=0x00d2}
0x05c8…0618              Head {h00=0x004c, h01=0x0050, text=»*                              DATA TO BE READ/WRITEN FROM/TO THE FILE. «, t00=0x0003, t01=0x011e}
0x0618…0622              Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x0003, t01=0x016e}
0x0622…066e              Head {h00=0x0048, h01=0x0050, text=»*                <RECNO>       IS A BINARY DATA ITEM CONTAINING THE «, t00=0x0003, t01=0x0178}
0x066e…06b8              Head {h00=0x0046, h01=0x0050, text=»*                              FILE RECORD NUMBER TO BE ACCESSED. «, t00=0x0004, t01=0x0034}
0x06b8…06c2              Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x0004, t01=0x007e}
0x06c2…06cc              Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x0004, t01=0x0088}
0x06cc…0716              Head {h00=0x0046, h01=0x0050, text=»*        THE CREDIT CONDITION REGISTER WILL BE SET TO ZERO IF THE «, t00=0x0004, t01=0x0092}
0x0716…074e              Head {h00=0x0034, h01=0x0050, text=»*        REQUEST WAS SUCCESSFUL AND TWO IF NOT. «, t00=0x0004, t01=0x00dc}
0x074e…0794              Head {h00=0x0042, h01=0x0050, text=»*        THE CREDIT CONDITION REGISTER WILL BE SET TO ONE IF A«, t00=0x0004, t01=0x0114}
0x0794…07bc              Head {h00=0x0024, h01=0x0050, text=»*        DELETED RECORD IS READ.«, t00=0x0004, t01=0x015a}
0x07bc…07c6              Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x0004, t01=0x0182}
0x07c6…0816              Head {h00=0x004c, h01=0x0050, text=»************************************************************************«, t00=0x0004, t01=0x018c}
0x0816…0820              Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x0005, t01=0x004c}
0x0820…082e              Head {h00=0x000a, h01=0x0050, text=» EJECT«, t00=0x0005, t01=0x0056}
0x082e…0840              Head {h00=0x000e, h01=0x0050, text=» DDUM DDIV«, t00=0x0005, t01=0x0064}
0x0840…084e              Head {h00=0x000a, h01=0x0050, text=» PDIV «, t00=0x0005, t01=0x0076}
0x084e…0858              Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x0005, t01=0x0084}
0x0858…0862              Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x0005, t01=0x008e}
0x0862…0880              Head {h00=0x001a, h01=0x0050, text=»***      ENTRY POINTS «, t00=0x0005, t01=0x0098}
0x0880…088a              Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x0005, t01=0x00b6}
0x088a…089e              Head {h00=0x0010, h01=0x0050, text=» ENTRY OPEN «, t00=0x0005, t01=0x00c0}
0x089e…08b2              Head {h00=0x0010, h01=0x0050, text=» ENTRY CLOSE«, t00=0x0005, t01=0x00d4}
0x08b2…08c6              Head {h00=0x0010, h01=0x0050, text=» ENTRY READ «, t00=0x0005, t01=0x00e8}
0x08c6…08d0              Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x0005, t01=0x00fc}
0x08d0…08f4              Head {h00=0x0020, h01=0x0050, text=»***      EXTERNAL REFERENCES«, t00=0x0005, t01=0x0106}
0x08f4…08fe              Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x0005, t01=0x012a}
0x08fe…0912              Head {h00=0x0010, h01=0x0050, text=» EXT FMOPEN «, t00=0x0005, t01=0x0134}
0x0912…0926              Head {h00=0x0010, h01=0x0050, text=» EXT FMCLOS «, t00=0x0005, t01=0x0148}
0x0926…093a              Head {h00=0x0010, h01=0x0050, text=» EXT FMREAD «, t00=0x0005, t01=0x015c}
0x093a…094e              Head {h00=0x0010, h01=0x0050, text=» EXT FMRFPB «, t00=0x0005, t01=0x0170}
0x094e…0960              Head {h00=0x000e, h01=0x0050, text=» EXT COPY4«, t00=0x0005, t01=0x0184}
0x0960…096a              Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x0006, t01=0x0008}
0x096a…0978              Head {h00=0x000a, h01=0x0050, text=» EJECT«, t00=0x0006, t01=0x0012}
0x0978…0982              Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x0006, t01=0x0020}
0x0982…099e              Head {h00=0x0018, h01=0x0050, text=»OPEN PROC FILIND,ST «, t00=0x0006, t01=0x002a}
0x099e…09b6              Head {h00=0x0014, h01=0x0050, text=» PBIN FILIND,ST «, t00=0x0006, t01=0x0046}
0x09b6…0a06              Head {h00=0x004c, h01=0x0050, text=»************************************************************************«, t00=0x0006, t01=0x005e}
0x0a06…0a10              Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x0006, t01=0x00ae}
0x0a10…0a56              Head {h00=0x0042, h01=0x0050, text=»*        THIS ROUTINE OPENS A DISK FILE FOR ACCESS BY ANY TASK«, t00=0x0006, t01=0x00b8}
0x0a56…0a9c              Head {h00=0x0042, h01=0x0050, text=»*        THE FILE NAME AND VOLUME NAME ARE EXTRACTED FROM THE «, t00=0x0006, t01=0x00fe}
0x0a9c…0ae2              Head {h00=0x0042, h01=0x0050, text=»*        TABLE 'DSFTABLE' TO FORM A FILE PARAMETER BLOCK. THE «, t00=0x0006, t01=0x0144}
0x0ae2…0b28              Head {h00=0x0042, h01=0x0050, text=»*        FILE MANAGEMENT ROUTINES ASSIGN A FILE NUMBER TO THE «, t00=0x0006, t01=0x018a}
0x0b28…0b6c              Head {h00=0x0040, h01=0x0050, text=»*        FILE AND THIS IS STORED IN THE TABLE 'DSFTABLE' ON «, t00=0x0007, t01=0x0040}
0x0b6c…0b9e              Head {h00=0x002e, h01=0x0050, text=»*        SUCCESSFUL COMPLETION OF THE OPEN«, t00=0x0007, t01=0x0084}
0x0b9e…0ba8              Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x0007, t01=0x00b6}
0x0ba8…0bf8              Head {h00=0x004c, h01=0x0050, text=»************************************************************************«, t00=0x0007, t01=0x00c0}
0x0bf8…0c02              Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x0007, t01=0x0110}
0x0c02…0c46              Head {h00=0x0040, h01=0x0050, text=» COPY FILE,COB0,COB8,DSFTABLE(FILIND),COB0   :GET FILE NAME «, t00=0x0007, t01=0x011a}
0x0c46…0c8c              Head {h00=0x0042, h01=0x0050, text=» COPY VOLUME,COB0,COB6,DSFTABLE(FILIND),COB8  :GET VOLUME NAME«, t00=0x0007, t01=0x015e}
0x0c8c…0ca6              Head {h00=0x0016, h01=0x0050, text=» MOVE DKSTAT,=C' '«, t00=0x0008, t01=0x0014}
0x0ca6…0cdc              Head {h00=0x0032, h01=0x0050, text=» EDIT FMBUF,FMTFPB SET UP FILE PARAMETER BLOCK«, t00=0x0008, t01=0x002e}
0x0cdc…0d0e              Head {h00=0x002e, h01=0x0050, text=» CALL FMOPEN,WKBIN1,FMBUF,ST   :OPEN FILE «, t00=0x0008, t01=0x0064}
0x0d0e…0d36              Head {h00=0x0024, h01=0x0050, text=» BNOK OPENERR OPEN SUCCESSFUL ? «, t00=0x0008, t01=0x0096}
0x0d36…0d7a              Head {h00=0x0040, h01=0x0050, text=» CALL COPY4,WKBIN2,COB0,COB1,WKBIN1,COB3      COPY FILE NO. «, t00=0x0008, t01=0x00be}
0x0d7a…0d9e              Head {h00=0x0020, h01=0x0050, text=» CALL FMRFPB,WKBIN1,FMBUF,ST«, t00=0x0008, t01=0x0102}
0x0d9e…0db4              Head {h00=0x0012, h01=0x0050, text=» BNOK OPENERR «, t00=0x0008, t01=0x0126}
0x0db4…0de4              Head {h00=0x002c, h01=0x0050, text=» CALL COPY4,WKBIN2,COB1,COB3,FMBUF,COB1 «, t00=0x0008, t01=0x013c}
0x0de4…0e26              Head {h00=0x003e, h01=0x0050, text=» XCOPY DSFTABLE(FILIND),COB14,COB2,WKBIN2,COB0   RECOPY IT«, t00=0x0008, t01=0x016c}
0x0e26…0e48              Head {h00=0x001e, h01=0x0050, text=» CMP COB0,COB0 SET CR = 0 «, t00=0x0009, t01=0x001e}
0x0e48…0e6c              Head {h00=0x0020, h01=0x0050, text=» RET  RETURN TO APPLICATION «, t00=0x0009, t01=0x0040}
0x0e6c…0e7c              Head {h00=0x000c, h01=0x0050, text=»OPENERR «, t00=0x0009, t01=0x0064}
0x0e7c…0e9e              Head {h00=0x001e, h01=0x0050, text=» CMP COB0,COB1 SET CR = 2 «, t00=0x0009, t01=0x0074}
0x0e9e…0ec2              Head {h00=0x0020, h01=0x0050, text=» RET  RETURN TO APPLICATION «, t00=0x0009, t01=0x0096}
0x0ec2…0ed0              Head {h00=0x000a, h01=0x0050, text=» PEND «, t00=0x0009, t01=0x00ba}
0x0ed0…0ede              Head {h00=0x000a, h01=0x0050, text=» EJECT«, t00=0x0009, t01=0x00c8}
0x0ede…0ef8              Head {h00=0x0016, h01=0x0050, text=»CLOSE PROC FILIND «, t00=0x0009, t01=0x00d6}
0x0ef8…0f0c              Head {h00=0x0010, h01=0x0050, text=» PBIN FILIND«, t00=0x0009, t01=0x00f0}
0x0f0c…0f16              Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x0009, t01=0x0104}
0x0f16…0f66              Head {h00=0x004c, h01=0x0050, text=»************************************************************************«, t00=0x0009, t01=0x010e}
0x0f66…0f70              Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x0009, t01=0x015e}
0x0f70…0f9c              Head {h00=0x0028, h01=0x0050, text=»*        THIS ROUTINE CLOSES A FILE.«, t00=0x0009, t01=0x0168}
0x0f9c…0fc4 (10, 0, 400) Head {h00=0x0024, h01=0x0050, text=»*        PARAMETERS AS FOR OPEN.«, t00=0x000a, t01=0x0004}
0x0fc4…0fce              Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x000a, t01=0x002c}
0x0fce…101e              Head {h00=0x004c, h01=0x0050, text=»************************************************************************«, t00=0x000a, t01=0x0036}
0x101e…1028              Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x000a, t01=0x0086}
0x1028…106c              Head {h00=0x0040, h01=0x0050, text=» COPY FILE,COB0,COB8,DSFTABLE(FILIND),COB0    :GET FILE NAME«, t00=0x000a, t01=0x0090}
0x106c…10b2              Head {h00=0x0042, h01=0x0050, text=» COPY VOLUME,COB0,COB6,DSFTABLE(FILIND),COB8  :GET VOLUME NAME«, t00=0x000a, t01=0x00d4}
0x10b2…10cc              Head {h00=0x0016, h01=0x0050, text=» MOVE DKSTAT,=C' '«, t00=0x000a, t01=0x011a}
0x10cc…10f2              Head {h00=0x0022, h01=0x0050, text=» MOVE WKBIN1,COB0 ZERO WKBIN1 «, t00=0x000a, t01=0x0134}
0x10f2…110c              Head {h00=0x0016, h01=0x0050, text=» MOVE BIN7,=W'28' «, t00=0x000a, t01=0x015a}
0x110c…1146              Head {h00=0x0036, h01=0x0050, text=» CALL COPY4,WKBIN1,COB3,COB1,DSFTABLE(FILIND),BIN7«, t00=0x000a, t01=0x0174}
0x1146…117c              Head {h00=0x0032, h01=0x0050, text=» EDIT FMBUF,FMTFPB SET UP FILE PARAMETER BLOCK«, t00=0x000b, t01=0x001e}
0x117c…11b0              Head {h00=0x0030, h01=0x0050, text=» CALL FMCLOS,WKBIN1,FMBUF,WKBIN2 CLOSE FILE «, t00=0x000b, t01=0x0054}
0x11b0…11e6              Head {h00=0x0032, h01=0x0050, text=» XCOPY WKBIN1,COB0,COB2,DSFTABLE(FILIND),COB14«, t00=0x000b, t01=0x0088}
0x11e6…1214              Head {h00=0x002a, h01=0x0050, text=» CALL COPY4,WKBIN1,COB0,COB1,COB0,COB3«, t00=0x000b, t01=0x00be}
0x1214…124a              Head {h00=0x0032, h01=0x0050, text=» XCOPY DSFTABLE(FILIND),COB14,COB2,WKBIN1,COB0«, t00=0x000b, t01=0x00ec}
0x124a…1264              Head {h00=0x0016, h01=0x0050, text=» MOVE WKBIN1,COB0 «, t00=0x000b, t01=0x0122}
0x1264…1280              Head {h00=0x0018, h01=0x0050, text=»LOOP ADD WKBIN1,COB1«, t00=0x000b, t01=0x013c}
0x1280…129e              Head {h00=0x001a, h01=0x0050, text=» CBG WKBIN1,NOFILS,END«, t00=0x000b, t01=0x0158}
0x129e…12e2              Head {h00=0x0040, h01=0x0050, text=» COPY WKSTR6,COB0,COB6,DSFTABLE(WKBIN1),COB8 GET VOLUME NAME«, t00=0x000b, t01=0x0176}
0x12e2…1310              Head {h00=0x002a, h01=0x0050, text=» CBNE WKSTR6,VOLUME,LOOP THIS VOLUME ?«, t00=0x000c, t01=0x002a}
0x1310…134a              Head {h00=0x0036, h01=0x0050, text=» XCOPY WKBIN2,COB0,COB2,DSFTABLE(WKBIN1),COB14 YES«, t00=0x000c, t01=0x0058}
0x134a…1362              Head {h00=0x0014, h01=0x0050, text=» MOVE WKB1,COB0 «, t00=0x000c, t01=0x0092}
0x1362…13a2              Head {h00=0x003c, h01=0x0050, text=» CALL COPY4,WKB1,COB3,COB1,WKBIN2,COB0  GET FILE NUMBER «, t00=0x000c, t01=0x00aa}
0x13a2…13ce              Head {h00=0x0028, h01=0x0050, text=» CBNE WKB1,COB0,LOOP FILE STILL OPEN«, t00=0x000c, t01=0x00ea}
0x13ce…13da              Head {h00=0x0008, h01=0x0050, text=»END «, t00=0x000c, t01=0x0116}
0x13da…13ee              Head {h00=0x0010, h01=0x0050, text=» RET  RETURN«, t00=0x000c, t01=0x0122}
0x13ee…13fc              Head {h00=0x000a, h01=0x0050, text=» PEND «, t00=0x000c, t01=0x0136}
0x13fc…140a              Head {h00=0x000a, h01=0x0050, text=» EJECT«, t00=0x000c, t01=0x0144}
0x140a…1414              Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x000c, t01=0x0152}
0x1414…143a              Head {h00=0x0022, h01=0x0050, text=»READ PROC FILIND,BUF,REC.NO,ST«, t00=0x000c, t01=0x015c}
0x143a…1458              Head {h00=0x001a, h01=0x0050, text=» PBIN FILIND,REC.NO,ST«, t00=0x000c, t01=0x0182}
0x1458…146a              Head {h00=0x000e, h01=0x0050, text=» PSTRG BUF«, t00=0x000d, t01=0x0010}
0x146a…1474              Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x000d, t01=0x0022}
0x1474…14c4              Head {h00=0x004c, h01=0x0050, text=»************************************************************************«, t00=0x000d, t01=0x002c}
0x14c4…14ce              Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x000d, t01=0x007c}
0x14ce…150c              Head {h00=0x003a, h01=0x0050, text=»*        THIS ROUTINE READS A RECORD FROM A DISK FILE «, t00=0x000d, t01=0x0086}
0x150c…1516              Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x000d, t01=0x00c4}
0x1516…1566              Head {h00=0x004c, h01=0x0050, text=»************************************************************************«, t00=0x000d, t01=0x00ce}
0x1566…1570              Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x000d, t01=0x011e}
0x1570…15a8              Head {h00=0x0034, h01=0x0050, text=» PERF GETBLK,FILIND,REC.NO,ST   GET DISK SECTOR «, t00=0x000d, t01=0x0128}
0x15a8…15b8              Head {h00=0x000c, h01=0x0050, text=» B RDERR«, t00=0x000d, t01=0x0160}
0x15b8…15d0              Head {h00=0x0014, h01=0x0050, text=» MOVE BUF,=C' ' «, t00=0x000d, t01=0x0170}
0x15d0…1600              Head {h00=0x002c, h01=0x0050, text=» MOVE WKBIN1,RECLEN SET UP RECORD LENGTH«, t00=0x000d, t01=0x0188}
0x1600…1634              Head {h00=0x0030, h01=0x0050, text=» COPY BUF,COB0,WKBIN1,FMBUF,WKBIN2 COPY DATA«, t00=0x000e, t01=0x0028}
0x1634…164e              Head {h00=0x0016, h01=0x0050, text=» ADD WKBIN2,WKBIN1«, t00=0x000e, t01=0x005c}
0x164e…166a              Head {h00=0x0018, h01=0x0050, text=» MOVE DKSTAT,=X'00' «, t00=0x000e, t01=0x0076}
0x166a…16ae              Head {h00=0x0040, h01=0x0050, text=» COPY DKSTAT,COB0,COB1,FMBUF,WKBIN2   GET RECORD STATUS CODE«, t00=0x000e, t01=0x0092}
0x16ae…16e4              Head {h00=0x0032, h01=0x0050, text=» CBNE DKSTAT,=X'00000000',NOTMT EMPTY RECORD? «, t00=0x000e, t01=0x00d6}
0x16e4…1700              Head {h00=0x0018, h01=0x0050, text=» MOVE BUF,=C' ' YES «, t00=0x000e, t01=0x010c}
0x1700…1722              Head {h00=0x001e, h01=0x0050, text=» CMP COB1,COB0 SET CR = 1 «, t00=0x000e, t01=0x0128}
0x1722…1746              Head {h00=0x0020, h01=0x0050, text=» RET  RETURN TO APPLICATION «, t00=0x000e, t01=0x014a}
0x1746…1754              Head {h00=0x000a, h01=0x0050, text=»NOTMT «, t00=0x000e, t01=0x016e}
0x1754…1776              Head {h00=0x001e, h01=0x0050, text=» CMP COB0,COB0 SET CR = 0 «, t00=0x000e, t01=0x017c}
0x1776…179a              Head {h00=0x0020, h01=0x0050, text=» RET  RETURN TO APPLICATION «, t00=0x000f, t01=0x000e}
0x179a…17a8              Head {h00=0x000a, h01=0x0050, text=»RDERR «, t00=0x000f, t01=0x0032}
0x17a8…17ca              Head {h00=0x001e, h01=0x0050, text=» CMP COB0,COB1 SET CR = 2 «, t00=0x000f, t01=0x0040}
0x17ca…17ee              Head {h00=0x0020, h01=0x0050, text=» RET  RETURN TO APPLICATION «, t00=0x000f, t01=0x0062}
0x17ee…17fc              Head {h00=0x000a, h01=0x0050, text=» PEND «, t00=0x000f, t01=0x0086}
0x17fc…180a              Head {h00=0x000a, h01=0x0050, text=» EJECT«, t00=0x000f, t01=0x0094}
0x180a…1814              Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x000f, t01=0x00a2}
0x1814…1838              Head {h00=0x0020, h01=0x0050, text=»GETBLK PROC FILIND,REC.NO,ST«, t00=0x000f, t01=0x00ac}
0x1838…1856              Head {h00=0x001a, h01=0x0050, text=» PBIN FILIND,REC.NO,ST«, t00=0x000f, t01=0x00d0}
0x1856…1860              Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x000f, t01=0x00ee}
0x1860…18b0              Head {h00=0x004c, h01=0x0050, text=»************************************************************************«, t00=0x000f, t01=0x00f8}
0x18b0…18ba              Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x000f, t01=0x0148}
0x18ba…1906              Head {h00=0x0048, h01=0x0050, text=»*        THIS ROUTINE READS THE SECTOR CONTAINING THE RECORD POINTED«, t00=0x000f, t01=0x0152}
0x1906…1948              Head {h00=0x003e, h01=0x0050, text=»*        TO BY REC.NO FROM THE FILE POINTED TO BY FILIND. «, t00=0x0010, t01=0x000e}
0x1948…1952              Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x0010, t01=0x0050}
0x1952…19a2              Head {h00=0x004c, h01=0x0050, text=»************************************************************************«, t00=0x0010, t01=0x005a}
0x19a2…19ac              Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x0010, t01=0x00aa}
0x19ac…19e2              Head {h00=0x0032, h01=0x0050, text=» XCOPY WKBIN1,COB0,COB2,DSFTABLE(FILIND),COB14«, t00=0x0010, t01=0x00b4}
0x19e2…19fc              Head {h00=0x0016, h01=0x0050, text=» MOVE RECLEN,COB0 «, t00=0x0010, t01=0x00ea}
0x19fc…1a12              Head {h00=0x0012, h01=0x0050, text=» MOVE FN,COB0 «, t00=0x0010, t01=0x0104}
0x1a12…1a42              Head {h00=0x002c, h01=0x0050, text=» CALL COPY4,RECLEN,COB1,COB3,WKBIN1,COB1«, t00=0x0010, t01=0x011a}
0x1a42…1a78              Head {h00=0x0032, h01=0x0050, text=» ADD RECLEN,COB1 ALLOW FOR RECORD STATUS BYTE «, t00=0x0010, t01=0x014a}
0x1a78…1aa4              Head {h00=0x0028, h01=0x0050, text=» CALL COPY4,FN,COB3,COB1,WKBIN1,COB0«, t00=0x0010, t01=0x0180}
0x1aa4…1ac0              Head {h00=0x0018, h01=0x0050, text=» MOVE WKBIN4,=W'256'«, t00=0x0011, t01=0x001c}
0x1ac0…1adc              Head {h00=0x0018, h01=0x0050, text=» MOVE WKBIN3,RECLEN «, t00=0x0011, t01=0x0038}
0x1adc…1af6              Head {h00=0x0016, h01=0x0050, text=» DIV WKBIN4,WKBIN3«, t00=0x0011, t01=0x0054}
0x1af6…1b12              Head {h00=0x0018, h01=0x0050, text=» MOVE WKBIN3,REC.NO «, t00=0x0011, t01=0x006e}
0x1b12…1b3c              Head {h00=0x0026, h01=0x0050, text=» SUB WKBIN3,=W'1' COUNT FROM ZERO «, t00=0x0011, t01=0x008a}
0x1b3c…1b56              Head {h00=0x0016, h01=0x0050, text=» DIV WKBIN3,WKBIN4«, t00=0x0011, t01=0x00b4}
0x1b56…1b72              Head {h00=0x0018, h01=0x0050, text=» MOVE SECTNO,WKBIN3 «, t00=0x0011, t01=0x00ce}
0x1b72…1ba6              Head {h00=0x0030, h01=0x0050, text=» ADD SECTNO,COB1 SECTNO = SECTOR TO BE READ «, t00=0x0011, t01=0x00ea}
0x1ba6…1bc0              Head {h00=0x0016, h01=0x0050, text=» MUL WKBIN3,WKBIN4«, t00=0x0011, t01=0x011e}
0x1bc0…1bdc              Head {h00=0x0018, h01=0x0050, text=» MOVE WKBIN1,WKBIN3 «, t00=0x0011, t01=0x0138}
0x1bdc…1bf8              Head {h00=0x0018, h01=0x0050, text=» MOVE WKBIN2,REC.NO «, t00=0x0011, t01=0x0154}
0x1bf8…1c20              Head {h00=0x0024, h01=0x0050, text=» SUB WKBIN2,COB1 COUNT FROM ZERO«, t00=0x0011, t01=0x0170}
0x1c20…1c56              Head {h00=0x0032, h01=0x0050, text=» SUB WKBIN2,WKBIN1 WKBIN2 = RECORD NO IN BLOCK«, t00=0x0012, t01=0x0008}
0x1c56…1c70              Head {h00=0x0016, h01=0x0050, text=» MUL WKBIN2,RECLEN«, t00=0x0012, t01=0x003e}
0x1c70…1c8c              Head {h00=0x0018, h01=0x0050, text=» MOVE LENGTH,=W'256'«, t00=0x0012, t01=0x0058}
0x1c8c…1ca4              Head {h00=0x0014, h01=0x0050, text=» SUB RECLEN,COB1«, t00=0x0012, t01=0x0074}
0x1ca4…1cd2              Head {h00=0x002a, h01=0x0050, text=» CALL FMREAD,FN,FMBUF,LENGTH,SECTNO,ST«, t00=0x0012, t01=0x008c}
0x1cd2…1ce6              Head {h00=0x0010, h01=0x0050, text=» BNOK GETERR«, t00=0x0012, t01=0x00ba}
0x1ce6…1cf4              Head {h00=0x000a, h01=0x0050, text=» RET 2«, t00=0x0012, t01=0x00ce}
0x1cf4…1d02              Head {h00=0x000a, h01=0x0050, text=»GETERR«, t00=0x0012, t01=0x00dc}
0x1d02…1d16              Head {h00=0x0010, h01=0x0050, text=» RET  RETURN«, t00=0x0012, t01=0x00ea}
0x1d16…1d20              Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x0012, t01=0x00fe}
0x1d20…1d2e              Head {h00=0x000a, h01=0x0050, text=» PEND «, t00=0x0012, t01=0x0108}
0x1d2e…1d38              Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x0012, t01=0x0116}
0x1d38…1d46              Head {h00=0x000a, h01=0x0050, text=» EJECT«, t00=0x0012, t01=0x0120}
0x1d46…1d50              Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x0012, t01=0x012e}
0x1d50…1da0              Head {h00=0x004c, h01=0x0050, text=»************************************************************************«, t00=0x0012, t01=0x0138}
0x1da0…1daa              Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x0012, t01=0x0188}
0x1daa…1dc2 (19, 0, 400) Head {h00=0x0014, h01=0x0050, text=»*        FORMATS«, t00=0x0013, t01=0x0004}
0x1dc2…1dcc              Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x0013, t01=0x001c}
0x1dcc…1e1c              Head {h00=0x004c, h01=0x0050, text=»************************************************************************«, t00=0x0013, t01=0x0026}
0x1e1c…1e26              Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x0013, t01=0x0076}
0x1e26…1e3a              Head {h00=0x0010, h01=0x0050, text=»FMTFPB FRMT «, t00=0x0013, t01=0x0080}
0x1e3a…1e50              Head {h00=0x0012, h01=0x0050, text=» FXCOPY DKSTAT«, t00=0x0013, t01=0x0094}
0x1e50…1e6c              Head {h00=0x0018, h01=0x0050, text=» FXCOPY =X'00000000'«, t00=0x0013, t01=0x00aa}
0x1e6c…1e80              Head {h00=0x0010, h01=0x0050, text=» FCOPY FILE «, t00=0x0013, t01=0x00c6}
0x1e80…1e98              Head {h00=0x0014, h01=0x0050, text=» FXCOPY =X'0000'«, t00=0x0013, t01=0x00da}
0x1e98…1eae              Head {h00=0x0012, h01=0x0050, text=» FCOPY VOLUME «, t00=0x0013, t01=0x00f2}
0x1eae…1eca              Head {h00=0x0018, h01=0x0050, text=» FXCOPY =X'00000000'«, t00=0x0013, t01=0x0108}
0x1eca…1ee0              Head {h00=0x0012, h01=0x0050, text=» FILLR ' ',30 «, t00=0x0013, t01=0x0124}
0x1ee0…1f02              Head {h00=0x001e, h01=0x0050, text=» FXCOPY =X'00000000000000'«, t00=0x0013, t01=0x013a}
0x1f02…1f20              Head {h00=0x001a, h01=0x0050, text=» FXCOPY =X'0000000000'«, t00=0x0013, t01=0x015c}
0x1f20…1f34              Head {h00=0x0010, h01=0x0050, text=» FILLR ' ',9«, t00=0x0013, t01=0x017a}
0x1f34…1f4a              Head {h00=0x0012, h01=0x0050, text=» FXCOPY =X'00'«, t00=0x0013, t01=0x018e}
0x1f4a…1f58              Head {h00=0x000a, h01=0x0050, text=» FMEND«, t00=0x0014, t01=0x0014}
0x1f58…1f62              Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x0014, t01=0x0022}
0x1f62…1f6e              Head {h00=0x0008, h01=0x0050, text=» END«, t00=0x0014, t01=0x002c}
0x1f6e…1f72              Head {h00=0x4004, h01=0x0000}
0x1f72…1f76              00 14 00 38                                                                                                                                                                                                                                       ┆   8┆
0x1f76…1f7e (21, 1, 8)   20 04 00 00 00 15 00 04                                                                                                                                                                                                                           ┆        ┆
0x1f7e…1fce (22, 0, 400) 00 0d 01 78 00 16 00 50 20 4d 4f 56 45 20 4c 45 4e 47 54 48 2c 3d 57 27 38 27 00 0e 00 08 00 0c 00 50 54 41 42 49 30 32 35 20 00 0e 00 22 00 3e 00 50 20 43 4f 50 59 20 44 53 46 54 41 42 4c 45 28 43 4f 42 32 29 2c 43 4f 42 30 2c 43 4f 42 38   ┆   x   P MOVE LENGTH,=W'8'       PTABI025    " > P COPY DSFTABLE(COB2),COB0,COB8┆
0x1fce…201e              2c 49 4e 46 4f 2c 43 4f 42 30 20 53 43 52 41 54 43 48 20 46 49 4c 45 4e 41 4d 45 20 00 0e 00 32 00 3c 00 50 20 43 4f 50 59 20 44 53 46 54 41 42 4c 45 28 43 4f 42 32 29 2c 43 4f 42 30 2c 4c 45 4e 47 54 48 2c 42 55 46 49 4e 2c 43 4f 42 30 20   ┆,INFO,COB0 SCRATCH FILENAME    2 < P COPY DSFTABLE(COB2),COB0,LENGTH,BUFIN,COB0 ┆
0x201e…206e              53 45 54 20 46 49 4c 45 4e 41 4d 45 00 0e 00 74 00 3a 00 50 20 43 4f 50 59 20 44 53 46 54 41 42 4c 45 28 43 4f 42 32 29 2c 43 4f 42 38 2c 43 4f 42 36 2c 56 4f 4c 55 4d 45 2c 43 4f 42 30 20 56 4f 4c 55 4d 45 4e 41 4d 45 20 00 0e 00 b4 00 2c   ┆SET FILENAME   t : P COPY DSFTABLE(COB2),COB8,COB6,VOLUME,COB0 VOLUMENAME      ,┆
0x206e…20be              00 50 20 50 45 52 46 20 4f 50 45 4e 2c 43 4f 42 32 2c 57 4b 42 31 20 4f 50 45 4e 20 43 4f 4e 53 54 41 4e 54 2d 46 49 4c 45 20 00 0e 00 f2 00 10 00 50 20 42 4f 4b 20 54 41 42 49 30 33 30 00 0e 01 22 00 24 00 50 20 4d 4f 56 45 20 56 41 52 49   ┆ P PERF OPEN,COB2,WKB1 OPEN CONSTANT-FILE        P BOK TABI030   " $ P MOVE VARI┆
0x20be…210e              4f 55 53 2c 3d 43 27 41 53 53 49 47 4e 20 45 52 52 4f 52 20 27 20 00 0e 01 36 00 18 00 50 20 50 45 52 46 20 53 43 52 49 42 45 2c 56 41 52 49 55 53 20 00 0e 01 5e 00 20 00 50 20 42 20 54 41 42 49 39 39 30 20 45 58 49 54 20 41 46 54 45 52 20   ┆OUS,=C'ASSIGN ERROR '    6   P PERF SCRIBE,VARIUS    ^   P B TABI990 EXIT AFTER ┆
0x210e…215e (23, 0, 398) 45 52 52 4f 52 20 00 0e 01 7a 00 06 00 50 2a 20 00 0f 00 0e 00 0c 00 50 54 41 42 49 30 33 30 20 00 0f 00 18 00 14 00 50 20 4d 4f 56 45 20 52 45 43 4e 4f 2c 43 4f 42 30 00 0f 00 28 00 1c 00 50 54 41 42 49 30 34 30 5c 5c 5c 52 45 41 44 20 41   ┆ERROR    z   P*        PTABI030        P MOVE RECNO,COB0   (   PTABI040   READ A┆
0x215e…21ae              20 52 45 43 4f 52 44 20 00 0f 00 40 00 14 00 50 20 41 44 44 20 52 45 43 4e 4f 2c 43 4f 42 31 20 00 0f 00 60 00 26 00 50 20 50 45 52 46 20 52 45 41 44 2c 43 4f 42 32 2c 46 44 42 55 46 2c 52 45 43 4e 4f 2c 53 54 41 54 55 53 00 0f 00 78 00 28   ┆ RECORD    @   P ADD RECNO,COB1    ` & P PERF READ,COB2,FDBUF,RECNO,STATUS   x (┆
0x21ae…21fe              00 50 20 42 4e 4f 4b 20 54 41 42 49 39 38 30 20 52 45 41 44 20 45 52 52 4f 52 20 28 50 52 4f 42 41 42 4c 59 29 20 00 0f 00 a2 00 26 00 50 20 4d 4f 56 45 20 57 4b 53 54 47 34 2c 46 44 42 55 46 20 45 58 54 52 41 43 54 20 34 20 42 59 54 45 53   ┆ P BNOK TABI980 READ ERROR (PROBABLY)      & P MOVE WKSTG4,FDBUF EXTRACT 4 BYTES┆
0x21fe…224e              00 0f 00 ce 00 2c 00 50 20 43 42 45 20 57 4b 53 54 47 34 2c 3d 43 27 3a 32 35 36 27 2c 54 41 42 49 39 30 30 20 45 4f 46 20 46 4f 55 4e 44 3f 20 00 0f 00 f8 00 06 00 50 2a 20 00 0f 01 28 00 20 00 50 20 4d 4f 56 45 20 53 54 41 54 2c 46 44 42   ┆     , P CBE WKSTG4,=C':256',TABI900 EOF FOUND?        P*    (   P MOVE STAT,FDB┆
0x224e…229c              55 46 20 4e 4f 54 20 59 45 54 20 45 4f 46 00 0f 01 32 00 2e 00 50 20 43 42 4e 45 20 53 54 41 54 2c 3d 43 27 3a 27 2c 54 41 42 49 30 35 30 20 4e 45 57 20 52 45 43 4f 52 44 20 54 59 50 45 3f 20 00 0f 01 56 00 06 00 50 2a 20 00 0f 01 88         ┆UF NOT YET EOF   2 . P CBNE STAT,=C':',TABI050 NEW RECORD TYPE?    V   P*     ┆
0x229c…22ec (24, 0, 400) 00 32 00 50 20 44 4c 45 54 45 20 57 4b 53 54 47 34 2c 43 4f 42 30 2c 43 4f 42 31 20 44 45 4c 45 54 45 20 54 59 50 45 20 44 45 4c 49 4d 49 54 45 52 20 00 10 00 04 00 26 00 50 20 4d 4f 56 45 20 57 4b 42 43 44 33 2c 57 4b 53 54 47 34 20 43 4f   ┆ 2 P DLETE WKSTG4,COB0,COB1 DELETE TYPE DELIMITER      & P MOVE WKBCD3,WKSTG4 CO┆
0x22ec…233c              4e 56 45 52 54 20 54 4f 20 42 43 44 00 10 00 3a 00 26 00 50 20 4d 4f 56 45 20 49 4e 44 45 58 2c 43 4f 42 30 20 52 45 43 4f 52 44 20 49 44 45 4e 54 49 46 49 45 52 00 10 00 64 00 24 00 50 20 4d 4f 56 45 20 4f 4c 44 53 45 54 2c 3d 44 27 2d 31   ┆NVERT TO BCD   : & P MOVE INDEX,COB0 RECORD IDENTIFIER   d $ P MOVE OLDSET,=D'-1┆
0x233c…238c              27 20 49 4e 49 54 20 4f 4c 44 53 45 54 20 00 10 00 8e 00 2c 00 50 20 4d 4f 56 45 20 44 49 53 50 4c 2c 43 4f 42 30 20 49 4e 49 54 20 44 49 50 4c 41 43 45 4d 45 4e 54 50 4f 49 4e 54 45 52 00 10 00 b6 00 24 00 50 20 42 20 54 41 42 49 30 34 30   ┆' INIT OLDSET      , P MOVE DISPL,COB0 INIT DIPLACEMENTPOINTER     $ P B TABI040┆
0x238c…23dc              20 41 4e 44 20 54 41 4b 45 20 4e 45 58 54 20 52 45 43 4f 52 44 20 00 10 00 e6 00 06 00 50 2a 20 00 10 01 0e 00 0c 00 50 54 41 42 49 30 35 30 20 00 10 01 18 00 2a 00 50 2a 20 54 48 45 20 43 55 52 52 45 4e 54 20 54 59 50 45 20 49 53 20 46 4f   ┆ AND TAKE NEXT RECORD        P*        PTABI050      * P* THE CURRENT TYPE IS FO┆
0x23dc…242c              55 4e 44 20 49 4e 20 57 4b 42 43 44 33 20 00 10 01 28 00 16 00 50 20 4d 4f 56 45 20 42 49 4e 37 2c 57 4b 42 43 44 33 20 00 10 01 56 00 2a 00 50 20 49 42 20 42 49 4e 37 2c 54 41 42 49 31 30 30 2c 20 56 41 52 49 4f 55 53 20 43 4f 4e 53 54 41   ┆UND IN WKBCD3    (   P MOVE BIN7,WKBCD3    V * P IB BIN7,TABI100, VARIOUS CONSTA┆
0x242c…247c (25, 0, 400) 4e 54 53 5c 43 20 00 10 01 70 00 22 00 50 5c 5c 54 41 42 49 32 30 30 2c 5c 46 55 4e 43 54 49 4f 4e 20 43 4f 4d 4d 41 4e 44 53 5c 43 00 11 00 0e 00 1e 00 50 5c 5c 54 41 42 49 33 30 30 2c 5c 50 52 49 4e 54 45 52 20 44 41 54 41 5c 43 20 00 11   ┆NTS C    p " P  TABI200, FUNCTION COMMANDS C       P  TABI300, PRINTER DATA C   ┆
0x247c…24cc              00 34 00 12 00 50 5c 5c 54 41 42 49 34 30 30 2c 5c 5c 43 20 00 11 00 56 00 12 00 50 5c 5c 54 41 42 49 35 30 30 2c 5c 5c 43 20 00 11 00 6c 00 12 00 50 5c 5c 54 41 42 49 36 30 30 2c 5c 5c 43 20 00 11 00 82 00 12 00 50 5c 5c 54 41 42 49 37 30   ┆ 4   P  TABI400,  C    V   P  TABI500,  C    l   P  TABI600,  C        P  TABI70┆
0x24cc…251c              30 2c 5c 5c 43 20 00 11 00 98 00 0e 00 50 5c 5c 54 41 42 49 38 30 30 20 00 11 00 ae 00 24 00 50 20 42 20 54 41 42 49 30 34 30 20 49 4e 56 41 4c 49 44 20 54 59 50 45 2c 20 49 47 4e 4f 52 45 20 00 11 00 c0 00 06 00 50 2a 20 00 11 00 e8 00 0c   ┆0,  C        P  TABI800      $ P B TABI040 INVALID TYPE, IGNORE        P*       ┆
0x251c…256c              00 50 54 41 42 49 31 30 30 20 00 11 00 f2 00 2a 00 50 20 41 44 44 20 49 4e 44 45 58 2c 43 4f 42 31 20 4e 45 58 54 20 52 45 43 4f 52 44 20 49 44 45 4e 54 49 46 49 45 52 00 11 01 02 00 32 00 50 20 49 42 20 49 4e 44 45 58 2c 54 41 42 49 31 31   ┆ PTABI100      * P ADD INDEX,COB1 NEXT RECORD IDENTIFIER     2 P IB INDEX,TABI11┆
0x256c…25bc              30 2c 54 41 42 49 31 31 30 2c 54 41 42 49 31 31 30 2c 54 41 42 49 31 31 30 2c 5c 5c 43 20 00 11 01 30 00 2a 00 50 5c 5c 54 41 42 49 31 31 30 2c 54 41 42 49 31 31 30 2c 54 41 42 49 31 31 30 2c 54 41 42 49 31 31 30 2c 5c 5c 43 20 00 11 01 66   ┆0,TABI110,TABI110,TABI110,  C    0 * P  TABI110,TABI110,TABI110,TABI110,  C    f┆
0x25bc…260c (26, 0, 400) 00 12 00 50 5c 5c 54 41 42 49 31 32 30 2c 5c 5c 43 20 00 12 00 04 00 0c 00 50 5c 5c 54 41 42 31 33 30 00 12 00 1a 00 24 00 50 20 42 20 54 41 42 49 30 34 30 20 49 4e 56 41 4c 49 44 20 49 4e 44 45 58 2c 49 47 4e 4f 52 45 20 00 12 00 2a 00 06   ┆   P  TABI120,  C        P  TAB130     $ P B TABI040 INVALID INDEX,IGNORE    *  ┆
0x260c…265c              00 50 2a 20 00 12 00 52 00 0c 00 50 54 41 42 49 31 31 30 20 00 12 00 5c 00 30 00 50 2a 20 38 20 43 55 52 52 45 4e 43 59 20 56 41 4c 55 45 53 2c 20 52 45 43 4f 52 44 20 49 44 45 4e 54 49 46 49 45 52 20 31 2e 2e 38 20 00 12 00 6c 00 2c 00 50   ┆ P*    R   PTABI110      0 P* 8 CURRENCY VALUES, RECORD IDENTIFIER 1..8    l , P┆
0x265c…26ac              20 4d 4f 56 45 20 44 45 4e 4f 4d 28 49 4e 44 45 58 29 2c 46 44 42 55 46 20 43 4f 4e 56 45 52 54 20 54 4f 20 42 43 44 20 00 12 00 a0 00 0e 00 50 20 42 20 54 41 42 49 30 34 30 00 12 00 d0 00 06 00 50 2a 20 00 12 00 e2 00 0c 00 50 54 41 42 49   ┆ MOVE DENOM(INDEX),FDBUF CONVERT TO BCD        P B TABI040       P*        PTABI┆
0x26ac…26fc              31 32 30 20 00 12 00 ec 00 28 00 50 2a 20 43 55 52 52 45 4e 43 59 20 54 45 58 54 2c 20 52 45 43 4f 52 44 20 49 44 45 4e 54 49 46 49 45 52 20 39 00 12 00 fc 00 14 00 50 20 4d 4f 56 45 20 43 55 52 52 2c 46 44 42 55 46 00 12 01 28 00 0e 00 50   ┆120      ( P* CURRENCY TEXT, RECORD IDENTIFIER 9       P MOVE CURR,FDBUF   (   P┆
0x26fc…274c              20 42 20 54 41 42 49 30 34 30 00 12 01 40 00 06 00 50 2a 20 00 12 01 52 00 0a 00 50 54 41 42 31 33 30 00 12 01 5c 00 26 00 50 2a 20 4d 41 58 49 4d 55 4d 20 57 49 54 48 44 52 41 57 41 4c 2e 20 4e 4f 20 44 45 43 49 4d 41 4c 53 20 00 12 01 6a   ┆ B TABI040   @   P*    R   PTAB130     & P* MAXIMUM WITHDRAWAL. NO DECIMALS    j┆
0x274c…279c (27, 0, 400) 00 16 00 50 20 4d 4f 56 45 20 44 4c 49 4d 49 54 2c 46 44 42 55 46 00 13 00 04 00 0e 00 50 20 42 20 54 41 42 49 30 34 30 00 13 00 1e 00 06 00 50 2a 20 00 13 00 30 00 0c 00 50 54 41 42 49 32 30 30 20 00 13 00 3a 00 26 00 50 2a 20 46 55 4e 43   ┆   P MOVE DLIMIT,FDBUF       P B TABI040       P*    0   PTABI200    : & P* FUNC┆
0x279c…27ec              54 49 4f 4e 20 43 4f 4d 4d 41 4e 44 53 2c 20 50 52 49 4e 54 45 52 20 44 41 54 41 20 00 13 00 4a 00 24 00 50 20 4d 4f 56 45 20 43 4f 4d 42 2c 46 44 42 55 46 20 45 58 54 52 41 43 54 20 53 45 51 2e 4e 42 52 00 13 00 74 00 22 00 50 20 4d 4f 56   ┆TION COMMANDS, PRINTER DATA    J $ P MOVE COMB,FDBUF EXTRACT SEQ.NBR   t " P MOV┆
0x27ec…283c              45 20 53 45 54 2c 43 4f 4d 42 20 43 4f 4e 56 45 52 54 20 54 4f 20 42 43 44 20 00 13 00 9c 00 2a 00 50 20 44 4c 45 54 45 20 46 44 42 55 46 2c 43 4f 42 30 2c 43 4f 42 32 20 44 45 4c 45 54 45 20 53 45 51 2e 4e 42 52 20 00 13 00 c2 00 1c 00 50   ┆E SET,COMB CONVERT TO BCD      * P DLETE FDBUF,COB0,COB2 DELETE SEQ.NBR        P┆
0x283c…288c              20 43 42 4e 45 20 53 45 54 2c 4f 4c 44 53 45 54 2c 54 41 42 49 32 32 30 00 13 00 f0 00 26 00 50 2a 20 53 41 4d 45 20 53 45 54 2c 20 49 4d 50 4c 49 43 49 54 53 20 50 52 49 4e 54 45 52 20 44 41 54 41 00 13 01 10 00 30 00 50 20 43 42 4c 20 44   ┆ CBNE SET,OLDSET,TABI220     & P* SAME SET, IMPLICITS PRINTER DATA     0 P CBL D┆
0x288c…28dc              49 53 50 4c 2c 3d 57 27 32 31 31 27 2c 54 41 42 49 32 31 30 20 50 52 45 56 45 4e 54 20 4f 56 45 52 46 4c 4f 57 20 00 13 01 3a 00 18 00 50 20 4d 4f 56 45 20 44 49 53 50 4c 2c 3d 57 27 32 31 30 27 20 00 13 01 6e 00 0c 00 50 54 41 42 49 32 31   ┆ISPL,=W'211',TABI210 PREVENT OVERFLOW    :   P MOVE DISPL,=W'210'    n   PTABI21┆
0x28dc…292c (28, 0, 400) 30 20 00 13 01 8a 00 18 00 50 20 4d 4f 56 45 20 57 4b 42 49 4e 31 2c 3d 57 27 34 30 27 20 00 14 00 0a 00 3a 00 50 20 58 43 4f 50 59 20 50 54 41 42 28 49 4e 44 45 58 29 2c 44 49 53 50 4c 2c 57 4b 42 49 4e 31 2c 46 44 42 55 46 2c 43 4f 42 30   ┆0        P MOVE WKBIN1,=W'40'      : P XCOPY PTAB(INDEX),DISPL,WKBIN1,FDBUF,COB0┆
0x292c…297c              20 43 4f 4e 43 41 54 45 4e 41 54 45 00 14 00 26 00 30 00 50 20 41 44 44 20 44 49 53 50 4c 2c 3d 57 27 34 30 27 20 52 4f 4f 4d 20 46 4f 52 20 4e 45 58 54 20 50 52 49 4e 54 45 52 44 41 54 41 20 00 14 00 64 00 32 00 50 20 4d 4f 56 45 20 50 4c   ┆ CONCATENATE   & 0 P ADD DISPL,=W'40' ROOM FOR NEXT PRINTERDATA    d 2 P MOVE PL┆
0x297c…29cc              45 4e 28 49 4e 44 45 58 2c 43 4f 42 31 29 2c 44 49 53 50 4c 20 53 45 54 20 43 52 55 44 45 20 4c 45 4e 47 54 48 20 00 14 00 98 00 0e 00 50 20 42 20 54 41 42 49 30 34 30 00 14 00 ce 00 06 00 50 2a 20 00 14 00 e0 00 0c 00 50 54 41 42 49 32 32   ┆EN(INDEX,COB1),DISPL SET CRUDE LENGTH        P B TABI040       P*        PTABI22┆
0x29cc…2a1c              30 20 00 14 00 ea 00 28 00 50 2a 20 4e 45 57 20 53 45 54 2c 20 49 4d 50 4c 49 43 49 54 20 46 55 4e 43 54 49 4f 4e 20 43 4f 4d 4d 41 4e 44 00 14 00 fa 00 2a 00 50 20 41 44 44 20 49 4e 44 45 58 2c 43 4f 42 31 20 4e 45 58 54 20 52 45 43 4f 52   ┆0      ( P* NEW SET, IMPLICIT FUNCTION COMMAND     * P ADD INDEX,COB1 NEXT RECOR┆
0x2a1c…2a6c              44 20 49 44 45 4e 54 49 46 49 45 52 00 14 01 26 00 32 00 50 20 4d 4f 56 45 20 4f 4c 44 53 45 54 2c 53 45 54 20 49 4e 49 54 49 41 54 45 20 46 4f 52 20 46 55 52 54 48 45 52 20 54 45 53 54 49 4e 47 20 00 14 01 54 00 32 00 50 20 4d 4f 56 45 20   ┆D IDENTIFIER   & 2 P MOVE OLDSET,SET INITIATE FOR FURTHER TESTING    T 2 P MOVE ┆

Reduced view