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

⟦c3c380a9f⟧

    Length: 11174 (0x2ba6)
    Notes: pts_type(SC)
    Names: »TLDPGM.SC«

Derivation

└─⟦13e5fd45a⟧ Bits:30009699 Philips computer tape "600507"
    └─⟦this⟧ »TOSSWORK/TLDPGM.SC« 
└─⟦bc20f3abf⟧ Bits:30009670 Philips computer tape "600126"
    └─⟦this⟧ »TOSSWORK/TLDPGM.SC« 

PTS(SC)

	IDENT TLDPGM 	REL 11.0 81-01-26 870105041100 

************************************************************
*                                                          *
*                PHILIPS TERMINAL SYSTEM PTS               *
*                ===========================               *
*                                                          *
*  TLDPGM - LOAD/UNLOAD PROGRAM PROCESSOR                  *
*                                                          *
*  THIS MODULE CONTAINS THE LKM PROCESSOR USED IN TOSS     *
*  DISC PAGING SYSTEMS FOR RUNTIME PROGRAM LOADING &       *
*  UNLOADING.                                              *
*                                                          *
*  REQUEST:  LKM                                            * 
*            DATA  25                                       * 
*                                                           * 
*  REQUEST PARAMETERS:  A1=0 - UNLOAD PROGRAM REQUEST       * 
*                       A1<>0 - FILE NUMBER                 * 
*                       A7,A8 - SECTOR ADDRESS IN FILE      * 
*                                                           * 
*  RETURN PARAMETERS:  A7 UNCHANGED IF OK                   * 
*                      A7=-1 IF ILLEGAL FILE NUMBER         * 
*                                                          *
************************************************************
	EJECT
************* 
*  ENTRIES  * 
************* 
	ENTRY	TLDPGM	LOAD PROGRAM ENTRY

	EJECT
*************** 
*  EXTERNALS  * 
*************** 
	EXTRN	TDISP	DISPATCHER ENTRY 
	EXTRN	QLTASK	QUEUE LOAD TASK ENTRY IN LDTASK 
	EXTRN	LD:ECB	LDTASK ECB AREA 
	EXTRN	LD:BUF	LOAD TASK DISC BUFFER 
	EXTRN	LD:BUE	DISC BUFFER END 
	EXTRN	LD:STB	LOAD TASK STACK BASE
	EXTRN	LKMQDI	QUEUE TASK FOR DISPATCHING
	EXTRN	QMEXIT	QUEUE TASK FOR DISPATCHING
	EXTRN	TTB:SP	SEGMENT TABLE POINTER IN TTAB 
	EXTRN	TTB:SB	SEGMENT BLOCK POINTER IN TTAB 
	EXTRN	TTB:AP	APPL. CONTROL BLOCK ADDRESS 
	EXTRN	TTB:SA	DISPATCH ADDRESS
	EXTRN	SEG:NS	NUMBER OF SEGMENTS IN SEGMENT TABLE 
	EXTRN	SEG:FC	VOLUME FILE CODE FOR SEGMENTS 
	EXTRN	SEG:EL	EFFECTIVE LENGTH
	EXTRN	FWTVOL	DISPL. TO VOLUME FILE CODE
	EXTRN	FWTEXB	FILE EXTENT BASE
	EXTRN	SCTFWT	START OF FILE WORK TABLE
	EXTRN	SCTFWL	FILE WORK TABLE LENGTH/TASK 
	EXTRN	SCTNOS	MAXIMUM NUMBER OF FILES/TASK
	EXTRN	SCTTCT	ADDRESS TO TASK CONTROL TABLE 
	EXTRN	ACBSEG	ADDRESS TO SEGMENT TABLE POOL 
	EJECT
************* 
*  EQUATES  * 
************* 
ECBFN	EQU	1	FILE NUMBER 
ECBBA	EQU	2	BUFFER ADDRESS
ECBRL	EQU	4	REQUESTED LENGTH
ECBEL	EQU	6	EFFECTIVE LENGTH
ECBRC	EQU	8	RETURN CODE 
ECBCW1	EQU	10	CONTROL WORD 1
ECBCW2	EQU	12	CONTROL WORD 2
* 
PHYRD	EQU	/91	PHYSICAL READ 
NUMSEG	EQU	10	DISPL. TO NUMBER OF SEGMENTS
	EJECT
TLDPGM	EQU	*
* 
*  SELECT LOAD/UNLOAD REQUEST 
* 
	ADK	A1,0 
	RF(NZ)	LOAD	LOAD PROGRAM REQUEST 
* 
*  UNLOAD PROGRAM PROCESSING
* 
ULD:10	EQU	*
	LD	A1,TTB:SP,A5	GET SEGMENT TABLE POINTER
	RF(Z)	ULD:40	NO PROGRAM LOADED 
	CM	TTB:SP,A5	CLEAR SEGMENT TABLE POINTER 
	CM	TTB:SB,A5	CLEAR SEGMENT BLOCK POINTER 
	LD	A2,SCTTCT	GET ADDRESS TO TCTAB
	LDR*	A3,A2	GET LENGTH OF TCTAB 
ULD:20	EQU	*
	SUK	A3,2	DECREMENT LENGTH
	RF(Z)	ULD:30	NO MOORE TASKS
	ADK	A2,2	NEXT ENTRY IN TCTAB 
	LDR*	A4,A2	GET NEXT TTAB-ADDRESS 
	LD	A4,TTB:SP,A4	GET SEGMENT TABLE POINTER
	CWR	A4,A1	SAME AS FOR CALLING TASK?
	RB(NE)	ULD:20	NO 
	RF	ULD:40
ULD:30	EQU	*
	CM	SEG:NS,A1	CLEAR NUMBER OF SEGMENTS
ULD:40	EQU	*
	ABL	LKMQDI	QUEUE TASK AND DISPATCH 
	EJECT
LOAD	EQU	*
* 
*  ACTIVATE LOAD TASK AT ENTRY LP:LST	DISPATCH ADDRESS
* 
	LDKL	A2,LP:LST	DISPATCH ADDRESS
	LDR	A3,A5	SAVE CALLING TASK TTAB-ADDRESS 
	INH
	CF	A15,QLTASK	ACTIVATE LOAD TASK 
	ENB
	ABL	TDISP	GO TO DISPATCHER 
	EJECT
* 
*  LOAD PROGRAM - RUNNING TASK IS LDTASK
* 
LP:LST	EQU	*
	LDKL	A14,LD:STB	LOAD A14 STACK BASE
	LDR	A5,A3	GET CALLING TASKS TTAB 
	ST	A1,LD:ECB+ECBFN	STORE FILE NUMBER IN ECB
	LD	A9,TTB:SA+14,A5	GET DISC ADDRESS BITS 0-15
	LD	A10,TTB:SA+16,A5	GET DISC ADDRESS BITS 16-30
	LD	A2,SCTFWT	START OF FILE WORK TABLE AREA 
LP:100	SUK	A1,1	FILE WORK TABLE FOUND?
	RF(Z)	LP:200	YES 
	AD	A2,SCTFWL	NEXT FILE WORK TABLE
	RB	LP:100
LP:200	EQU	*
	LDKL	A1,LD:BUF	GET BUFFER ADDRESS
	ST	A1,LD:ECB+ECBBA	STORE IN ECB
	LDKL	A1,256	REQUESTED LENGTH 
	ST	A1,LD:ECB+ECBRL	STORE IN ECB
	CF	A14,RDSFM	READ FIRST SECTOR 
	LC	A6,FWTEXB-1,A2	GET FILE EXTENT BASE (BITS 0-7)
	ANK	A6,/FF	ISOLATE ADDRESS 
	LD	A11,FWTEXB,A2	GET FILE EXTENT BASE (BITS 8-23)
	RF(NZ)	LP:300
	SUK	A6,1 
LP:300	SUKL	A11,1 
	CF	A14,CHIPLD	CHECK IF PROGRAM LOADED
	ADK	A1,0	A1=0 IF NO PROGRAM LOADED 
	RF(NZ)	LPMEND	PROGRAM ALREADY LOADED 
	CF	A14,GETFST	GET FREE SEGMENT TABLE 
	ADK	A1,0	A1=0 IF NO SEGMENT TABLE AVALIABLE
	RF(Z)	REQERR	IMPOSSIBLE TO LOAD PROGRAM
	LC	A2,FWTVOL,A2	GET VOLUME FILE CODE 
	SC	A2,SEG:FC+1,A1	STORE IN SEGMENT TABLE 
	LD	A3,LD:BUF+NUMSEG	GET NUMBER OF SEGMENTS 
	RF(Z)	REQERR	NO SEGMENTS!
	CW	A3,SCTNOS	COMPARE TO MAXIMUM NUMBER/TASK
	RF(G)	REQERR	TOO MANY SEGMENTS 
	ST	A3,SEG:NS,A1	STORE CURRENT NUMBER OF SEGMENTS 
	LDKL	A2,LD:BUF+NUMSEG	START OF SEGMENT BLOCKS
* 
*  STORE BLOCK 0
* 
	LDKL	A4,/8400	STATUS FOR SEGMENT 0 
	STR	A4,A1	STORE STATUS 
	CM	2,A1	CLEAR STATUS/DISC ADDRESS BIT 0-7
	CM	6,A1	CLEAR PAGE BLOCK ADDRESS 
	ADK	A1,8	START OF SEGMENT ONE
* 
*  INIT SEGMENT BLOCKS
* 
I:SBLK	SUK	A3,1 
	RF(N)	LPMEND	NO MOORE SEGMENTS!
	CF	A14,GETWSG	GET DISC ADDRESS 
	ANK	A4,/FF	CLEAR STATUS BYTE 
	ADR	A4,A6	RELOCATE DISC ADDRESS
	STR	A4,A1	STORE STATUS AND DISC ADDRESS
	ADK	A1,2	DISC ADDRESS BIT 8-22 
	CF	A14,GETWSG	GET DISC ADDRESS BITS 8-22 
	ADR	A4,A11	RELOCATE DISC ADDRESS 
	STR	A4,A1	STORE	 
	ADK	A1,2	SEGMENT LENGTH
	CF	A14,GETWSG	GET SEGMENT LENGTH 
	STR	A4,A1	STORE
	CM	2,A1	CLEAR PAGE BLOCK ADDRESS 
	ADK	A1,4	NEXT SEGMENT BLOCK
	RB	I:SBLK
	EJECT
LPMEND	EQU	*
	ABL	QMEXIT	QUEUE TASK FOR DISPATCHING

* 
*  ERROR ENTRY
* 
REQERR	LDKL	A7,-1	INDICATE REQUEST ERROR
DSKERR	ST	A7,TTB:SA+14,A5	SET RETURN CODE IN A7 
	RB	LPMEND
	EJECT
***************** INTERNAL SUBROUTINES *****************


* 
*  GETWSG - GET WORD IN S:GTAB
* 
*  ENTRY:  A2 - POINTER IN S:GTAB 
* 
*  EXIT:  A2 - ENTRY VALUE + 2
*         A4 - CONTENTS IN LOCATION POINTED AT BY A2
* 
*  SUBROUTINES:  RDSFM
* 
GETWSG	ADK	A2,2	INCREMENT S:GTAB POINTER
	CWK	A2,LD:BUE	END OF SECTOR? 
	RF(NE)	GETRTN	NOT YET
	CF	A14,RDSFM	READ NEXT SECTOR
	LDKL	A2,LD:BUF	START OF BUFFER 
GETRTN	LDR*	A4,A2	GET CONTENT 
	RTN	A14
	EJECT
* 
*  RDSFM - READ SECTOR VIA FILE MANAGEMENT
* 
*  ENTRY:  ECB CONTAINING FILE NUMBER,BUFFER ADDRESS
*          REQUESTED LENGTH AND SECTOR ADDRESS
* 
*  EXIT:  SECTOR ADDRESS IS INCREMENTED BY ONE
* 
*  WORK REGISTERS:  A7,A8 
* 
RDSFM	LDK	A7,PHYRD	LOAD ORDER 
	LDKL	A8,LD:ECB	LOAD ECB-ADDRESS
	ST	A9,LD:ECB+ECBCW1	STORE DISC ADDRESS BITS 0-15 
	ST	A10,LD:ECB+ECBCW2	STORE DISC ADDRESS BITS 16-30 
	LKM
	DATA	15
* 
*  CHECK RETURN CODE
* 
	LD	A7,LD:ECB+ECBRC	GET RETURN CODE 
	ANKL	A7,/FEFF	SKIP RETRY BIT 
	RF(Z)	RDSF10	OK! 
	ANK	A7,1	BIT 15=DISC NOT OPERABLE
	NGR	A7,A7	TAKE 2'S COMPLEMENT
	SUK	A7,2	SET ERROR RETURN CODE 
	RB	DSKERR
* 
*  INCREMENT SECTOR ADDRESS 
* 
RDSF10	ADKL	A10,1	INCR. LEAST SIGN. PART
	RF(NN)	RDSRET	OVERFLOW?
	ADKL	A9,1	INCR. MOST SIGN. PART
	RB(Z)	REQERR	ADDRESS OVERFLOW
	XRR	A10,A10	RESET CARRY
RDSRET	RTN	A14
	EJECT
* 
* 
*  CHIPLD - CHECK IF PROGRAM LOADED 
* 
*  ENTRY:  A6 - FILE EXTENT BASE BITS 0-7 
*         A11 - FILE EXTENT BASE BITS 8-23
*         LD:BUF CONTAINS FIRST SECTOR
* 
*  EXIT:  A1=0 - PROGRAM NOT LOADED 
*         A1<>0 - SEGMENT TABLE ADDRESS 
* 
*  WORK REGISTERS:  A1,A3,A4,A7,A8
* 
CHIPLD	EQU	*
	LD	A7,SCTTCT	GET ADDRESS TO TCTAB
	LDR*	A8,A7	GET LENGTH OF TCTAB 
CHPL10	EQU	*
	SUKL	A8,2	MOORE TASKS? 
	RF(Z)	CHPL50	NO! 
	ADK	A7,2	NEXT ENTRY IN TCTAB 
	LDR*	A1,A7	GET NEXT TTAB-ADDRESS 
	LD	A1,TTB:SP,A1	GET SEGMENT TABLE POINTER
	RB(Z)	CHPL10	NO SEGMENT TABLE ATTACHED 
	LD	A3,LD:BUF+12	GET DISC ADDRESS BITS 0-7
	ANK	A3,/FF	ISOLATE ADDRESS 
	ADR	A3,A6	RELOCATE ADDRESS 
	LD	A4,8,A1	GET DISC ADDRESS IN SEGMENT TABLE 
	ANK	A4,/FF	ISOLATE ADDRESS 
	CWR	A3,A4	MOST SIGNIFICANT BITS EQUAL? 
	RB(NE)	CHPL10	NO 
	LD	A3,LD:BUF+14	GET DISC ADDRESS BITS 8-23 
	ADR	A3,A11	RELOCATE
	LD	A4,10,A1	GET DISC ADDRES IN SEGMENT TABLE 
	CWR	A3,A4	LEAST SIGNIFICANT PART EQUAL?
	RB(NE)	CHPL10	NO 
	RF	CHPL90
CHPL50	EQU	*
	XRR	A1,A1	CLEAR SEGMENT TABLE POINTER
CHPL90	EQU	*
	ST	A1,TTB:SP,A5	STORE SEGMENT TABLE POINTER
	RTN	A14
	EJECT
* 
*  GETFST - GET FREE SEGMENT TABLE
* 
*  ENTRY: 
* 
*  EXIT:  A1 - SEGMENT TABLE POINTER
* 
*  WORK REGISTER:  A1,A3
* 
GETFST	EQU	*
	LD	A1,TTB:AP,A5	GET ADDRESS TO ACB 
	LD	A1,ACBSEG,A1	GET START OF SEGMENT TABLE POOL
	ADK	A1,4	SEGMENT BLOCK 0 
GFST10	EQU	*
	LD	A3,SEG:NS,A1	GET NUMBER OF SEGMENTS 
	RF(Z)	GFST30	NOT USED
GFST20	EQU	*
	LD	A1,SEG:EL,A1	GET SEGMENT TABLE LINK 
	RF(Z)	GFST40	NO MORE SEGMENT TABLES
	SUK	A1,4	ADJUST SEGMENT TABLE POINTER
	RB	GFST10	CHECK NEXT SEGTAB
GFST30	EQU	*
	ST	A1,TTB:SP,A5	STORE SEGMENT TABLE POINTER

GFST40	EQU	*
	RTN	A14	RETURN 
	END

HexDump

0x0000…0036 (0, 0, 398)  Head {h00=0x0032, h01=0x0050, text=» IDENT TLDPGM  REL 11.0 81-01-26 870105041100 «, t00=0x0000, t01=0x0004}
0x0036…003e              Head {h00=0x0004, h01=0x0050, t00=0x0000, t01=0x003a}
0x003e…0082              Head {h00=0x0040, h01=0x003c, text=»************************************************************«, t00=0x0000, t01=0x0042}
0x0082…00c6              Head {h00=0x0040, h01=0x003c, text=»*                                                          *«, t00=0x0000, t01=0x0086}
0x00c6…010a              Head {h00=0x0040, h01=0x003c, text=»*                PHILIPS TERMINAL SYSTEM PTS               *«, t00=0x0000, t01=0x00ca}
0x010a…014e              Head {h00=0x0040, h01=0x003c, text=»*                ===========================               *«, t00=0x0000, t01=0x010e}
0x014e…0192              Head {h00=0x0040, h01=0x003c, text=»*                                                          *«, t00=0x0000, t01=0x0152}
0x0192…01d6              Head {h00=0x0040, h01=0x0050, text=»*  TLDPGM - LOAD/UNLOAD PROGRAM PROCESSOR                  *«, t00=0x0001, t01=0x0008}
0x01d6…021a              Head {h00=0x0040, h01=0x003c, text=»*                                                          *«, t00=0x0001, t01=0x004c}
0x021a…025e              Head {h00=0x0040, h01=0x003c, text=»*  THIS MODULE CONTAINS THE LKM PROCESSOR USED IN TOSS     *«, t00=0x0001, t01=0x0090}
0x025e…02a2              Head {h00=0x0040, h01=0x0050, text=»*  DISC PAGING SYSTEMS FOR RUNTIME PROGRAM LOADING &       *«, t00=0x0001, t01=0x00d4}
0x02a2…02e6              Head {h00=0x0040, h01=0x0050, text=»*  UNLOADING.                                              *«, t00=0x0001, t01=0x0118}
0x02e6…032a              Head {h00=0x0040, h01=0x003c, text=»*                                                          *«, t00=0x0001, t01=0x015c}
0x032a…0370              Head {h00=0x0042, h01=0x0050, text=»*  REQUEST:  LKM                                            * «, t00=0x0002, t01=0x0010}
0x0370…03b6              Head {h00=0x0042, h01=0x0050, text=»*            DATA  25                                       * «, t00=0x0002, t01=0x0056}
0x03b6…03fc              Head {h00=0x0042, h01=0x0050, text=»*                                                           * «, t00=0x0002, t01=0x009c}
0x03fc…0442              Head {h00=0x0042, h01=0x0050, text=»*  REQUEST PARAMETERS:  A1=0 - UNLOAD PROGRAM REQUEST       * «, t00=0x0002, t01=0x00e2}
0x0442…0488              Head {h00=0x0042, h01=0x0050, text=»*                       A1<>0 - FILE NUMBER                 * «, t00=0x0002, t01=0x0128}
0x0488…04ce              Head {h00=0x0042, h01=0x0050, text=»*                       A7,A8 - SECTOR ADDRESS IN FILE      * «, t00=0x0002, t01=0x016e}
0x04ce…0514              Head {h00=0x0042, h01=0x0050, text=»*                                                           * «, t00=0x0003, t01=0x0024}
0x0514…055a              Head {h00=0x0042, h01=0x0050, text=»*  RETURN PARAMETERS:  A7 UNCHANGED IF OK                   * «, t00=0x0003, t01=0x006a}
0x055a…05a0              Head {h00=0x0042, h01=0x0050, text=»*                      A7=-1 IF ILLEGAL FILE NUMBER         * «, t00=0x0003, t01=0x00b0}
0x05a0…05e4              Head {h00=0x0040, h01=0x003c, text=»*                                                          *«, t00=0x0003, t01=0x00f6}
0x05e4…0628              Head {h00=0x0040, h01=0x003c, text=»************************************************************«, t00=0x0003, t01=0x013a}
0x0628…0636              Head {h00=0x000a, h01=0x0006, text=» EJECT«, t00=0x0003, t01=0x017e}
0x0636…064c              Head {h00=0x0012, h01=0x000d, text=»************* «, t00=0x0003, t01=0x018c}
0x064c…0662              Head {h00=0x0012, h01=0x000d, text=»*  ENTRIES  * «, t00=0x0004, t01=0x0012}
0x0662…0678              Head {h00=0x0012, h01=0x000d, text=»************* «, t00=0x0004, t01=0x0028}
0x0678…06a0              Head {h00=0x0024, h01=0x0050, text=» ENTRY TLDPGM LOAD PROGRAM ENTRY«, t00=0x0004, t01=0x003e}
0x06a0…06a8              Head {h00=0x0004, h01=0x0002, t00=0x0004, t01=0x0066}
0x06a8…06b6              Head {h00=0x000a, h01=0x0006, text=» EJECT«, t00=0x0004, t01=0x006e}
0x06b6…06ce              Head {h00=0x0014, h01=0x000f, text=»*************** «, t00=0x0004, t01=0x007c}
0x06ce…06e6              Head {h00=0x0014, h01=0x000f, text=»*  EXTERNALS  * «, t00=0x0004, t01=0x0094}
0x06e6…06fe              Head {h00=0x0014, h01=0x000f, text=»*************** «, t00=0x0004, t01=0x00ac}
0x06fe…0724              Head {h00=0x0022, h01=0x0050, text=» EXTRN TDISP DISPATCHER ENTRY «, t00=0x0004, t01=0x00c4}
0x0724…075a              Head {h00=0x0032, h01=0x002d, text=» EXTRN QLTASK QUEUE LOAD TASK ENTRY IN LDTASK «, t00=0x0004, t01=0x00ea}
0x075a…0780              Head {h00=0x0022, h01=0x0050, text=» EXTRN LD:ECB LDTASK ECB AREA «, t00=0x0004, t01=0x0120}
0x0780…07ac              Head {h00=0x0028, h01=0x0023, text=» EXTRN LD:BUF LOAD TASK DISC BUFFER «, t00=0x0004, t01=0x0146}
0x07ac…07d2              Head {h00=0x0022, h01=0x0050, text=» EXTRN LD:BUE DISC BUFFER END «, t00=0x0004, t01=0x0172}
0x07d2…07fc              Head {h00=0x0026, h01=0x0050, text=» EXTRN LD:STB LOAD TASK STACK BASE«, t00=0x0005, t01=0x0008}
0x07fc…082c              Head {h00=0x002c, h01=0x0050, text=» EXTRN LKMQDI QUEUE TASK FOR DISPATCHING«, t00=0x0005, t01=0x0032}
0x082c…085c              Head {h00=0x002c, h01=0x0050, text=» EXTRN QMEXIT QUEUE TASK FOR DISPATCHING«, t00=0x0005, t01=0x0062}
0x085c…0890              Head {h00=0x0030, h01=0x002b, text=» EXTRN TTB:SP SEGMENT TABLE POINTER IN TTAB «, t00=0x0005, t01=0x0092}
0x0890…08c4              Head {h00=0x0030, h01=0x0050, text=» EXTRN TTB:SB SEGMENT BLOCK POINTER IN TTAB «, t00=0x0005, t01=0x00c6}
0x08c4…08f6              Head {h00=0x002e, h01=0x0050, text=» EXTRN TTB:AP APPL. CONTROL BLOCK ADDRESS «, t00=0x0005, t01=0x00fa}
0x08f6…091c              Head {h00=0x0022, h01=0x0050, text=» EXTRN TTB:SA DISPATCH ADDRESS«, t00=0x0005, t01=0x012c}
0x091c…0956              Head {h00=0x0036, h01=0x0031, text=» EXTRN SEG:NS NUMBER OF SEGMENTS IN SEGMENT TABLE «, t00=0x0005, t01=0x0152}
0x0956…098a              Head {h00=0x0030, h01=0x002b, text=» EXTRN SEG:FC VOLUME FILE CODE FOR SEGMENTS «, t00=0x0005, t01=0x018c}
0x098a…09b0              Head {h00=0x0022, h01=0x0050, text=» EXTRN SEG:EL EFFECTIVE LENGTH«, t00=0x0006, t01=0x0030}
0x09b0…09e0              Head {h00=0x002c, h01=0x0028, text=» EXTRN FWTVOL DISPL. TO VOLUME FILE CODE«, t00=0x0006, t01=0x0056}
0x09e0…0a06              Head {h00=0x0022, h01=0x0050, text=» EXTRN FWTEXB FILE EXTENT BASE«, t00=0x0006, t01=0x0086}
0x0a06…0a34              Head {h00=0x002a, h01=0x0026, text=» EXTRN SCTFWT START OF FILE WORK TABLE«, t00=0x0006, t01=0x00ac}
0x0a34…0a66              Head {h00=0x002e, h01=0x0029, text=» EXTRN SCTFWL FILE WORK TABLE LENGTH/TASK «, t00=0x0006, t01=0x00da}
0x0a66…0a98              Head {h00=0x002e, h01=0x002a, text=» EXTRN SCTNOS MAXIMUM NUMBER OF FILES/TASK«, t00=0x0006, t01=0x010c}
0x0a98…0acc              Head {h00=0x0030, h01=0x0050, text=» EXTRN SCTTCT ADDRESS TO TASK CONTROL TABLE «, t00=0x0006, t01=0x013e}
0x0acc…0b00              Head {h00=0x0030, h01=0x0050, text=» EXTRN ACBSEG ADDRESS TO SEGMENT TABLE POOL «, t00=0x0006, t01=0x0172}
0x0b00…0b0e              Head {h00=0x000a, h01=0x0006, text=» EJECT«, t00=0x0007, t01=0x0016}
0x0b0e…0b24              Head {h00=0x0012, h01=0x0050, text=»************* «, t00=0x0007, t01=0x0024}
0x0b24…0b3a              Head {h00=0x0012, h01=0x000d, text=»*  EQUATES  * «, t00=0x0007, t01=0x003a}
0x0b3a…0b50              Head {h00=0x0012, h01=0x000d, text=»************* «, t00=0x0007, t01=0x0050}
0x0b50…0b70              Head {h00=0x001c, h01=0x0017, text=»ECBFN EQU 1 FILE NUMBER «, t00=0x0007, t01=0x0066}
0x0b70…0b92              Head {h00=0x001e, h01=0x001a, text=»ECBBA EQU 2 BUFFER ADDRESS«, t00=0x0007, t01=0x0086}
0x0b92…0bb6              Head {h00=0x0020, h01=0x001c, text=»ECBRL EQU 4 REQUESTED LENGTH«, t00=0x0007, t01=0x00a8}
0x0bb6…0bda              Head {h00=0x0020, h01=0x001c, text=»ECBEL EQU 6 EFFECTIVE LENGTH«, t00=0x0007, t01=0x00cc}
0x0bda…0bfa              Head {h00=0x001c, h01=0x0017, text=»ECBRC EQU 8 RETURN CODE «, t00=0x0007, t01=0x00f0}
0x0bfa…0c1e              Head {h00=0x0020, h01=0x001c, text=»ECBCW1 EQU 10 CONTROL WORD 1«, t00=0x0007, t01=0x0110}
0x0c1e…0c42              Head {h00=0x0020, h01=0x001c, text=»ECBCW2 EQU 12 CONTROL WORD 2«, t00=0x0007, t01=0x0134}
0x0c42…0c4c              Head {h00=0x0006, h01=0x0003, text=»* «, t00=0x0007, t01=0x0158}
0x0c4c…0c70              Head {h00=0x0020, h01=0x0050, text=»PHYRD EQU /91 PHYSICAL READ «, t00=0x0007, t01=0x0162}
0x0c70…0ca2              Head {h00=0x002e, h01=0x002a, text=»NUMSEG EQU 10 DISPL. TO NUMBER OF SEGMENTS«, t00=0x0007, t01=0x0186}
0x0ca2…0cb0              Head {h00=0x000a, h01=0x0006, text=» EJECT«, t00=0x0008, t01=0x0028}
0x0cb0…0cc4              Head {h00=0x0010, h01=0x0050, text=»TLDPGM EQU *«, t00=0x0008, t01=0x0036}
0x0cc4…0cce              Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x0008, t01=0x004a}
0x0cce…0cf4              Head {h00=0x0022, h01=0x0050, text=»*  SELECT LOAD/UNLOAD REQUEST «, t00=0x0008, t01=0x0054}
0x0cf4…0cfe              Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x0008, t01=0x007a}
0x0cfe…0d10              Head {h00=0x000e, h01=0x0050, text=» ADK A1,0 «, t00=0x0008, t01=0x0084}
0x0d10…0d3a              Head {h00=0x0026, h01=0x0050, text=» RF(NZ) LOAD LOAD PROGRAM REQUEST «, t00=0x0008, t01=0x0096}
0x0d3a…0d44              Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x0008, t01=0x00c0}
0x0d44…0d68              Head {h00=0x0020, h01=0x0050, text=»*  UNLOAD PROGRAM PROCESSING«, t00=0x0008, t01=0x00ca}
0x0d68…0d72              Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x0008, t01=0x00ee}
0x0d72…0d86              Head {h00=0x0010, h01=0x0050, text=»ULD:10 EQU *«, t00=0x0008, t01=0x00f8}
0x0d86…0db8              Head {h00=0x002e, h01=0x0050, text=» LD A1,TTB:SP,A5 GET SEGMENT TABLE POINTER«, t00=0x0008, t01=0x010c}
0x0db8…0de0              Head {h00=0x0024, h01=0x0050, text=» RF(Z) ULD:40 NO PROGRAM LOADED «, t00=0x0008, t01=0x013e}
0x0de0…0e12              Head {h00=0x002e, h01=0x0050, text=» CM TTB:SP,A5 CLEAR SEGMENT TABLE POINTER «, t00=0x0008, t01=0x0166}
0x0e12…0e44              Head {h00=0x002e, h01=0x0050, text=» CM TTB:SB,A5 CLEAR SEGMENT BLOCK POINTER «, t00=0x0009, t01=0x0008}
0x0e44…0e6e              Head {h00=0x0026, h01=0x0050, text=» LD A2,SCTTCT GET ADDRESS TO TCTAB«, t00=0x0009, t01=0x003a}
0x0e6e…0e96              Head {h00=0x0024, h01=0x0050, text=» LDR* A3,A2 GET LENGTH OF TCTAB «, t00=0x0009, t01=0x0064}
0x0e96…0eaa              Head {h00=0x0010, h01=0x0050, text=»ULD:20 EQU *«, t00=0x0009, t01=0x008c}
0x0eaa…0ecc              Head {h00=0x001e, h01=0x0050, text=» SUK A3,2 DECREMENT LENGTH«, t00=0x0009, t01=0x00a0}
0x0ecc…0ef0              Head {h00=0x0020, h01=0x0050, text=» RF(Z) ULD:30 NO MOORE TASKS«, t00=0x0009, t01=0x00c2}
0x0ef0…0f16              Head {h00=0x0022, h01=0x0050, text=» ADK A2,2 NEXT ENTRY IN TCTAB «, t00=0x0009, t01=0x00e6}
0x0f16…0f40              Head {h00=0x0026, h01=0x0050, text=» LDR* A4,A2 GET NEXT TTAB-ADDRESS «, t00=0x0009, t01=0x010c}
0x0f40…0f72              Head {h00=0x002e, h01=0x0050, text=» LD A4,TTB:SP,A4 GET SEGMENT TABLE POINTER«, t00=0x0009, t01=0x0136}
0x0f72…0f9e              Head {h00=0x0028, h01=0x0050, text=» CWR A4,A1 SAME AS FOR CALLING TASK?«, t00=0x0009, t01=0x0168}
0x0f9e…0fb8 (10, 0, 400) Head {h00=0x0016, h01=0x0050, text=» RB(NE) ULD:20 NO «, t00=0x000a, t01=0x0004}
0x0fb8…0fca              Head {h00=0x000e, h01=0x0050, text=» RF ULD:40«, t00=0x000a, t01=0x001e}
0x0fca…0fde              Head {h00=0x0010, h01=0x0050, text=»ULD:30 EQU *«, t00=0x000a, t01=0x0030}
0x0fde…100c              Head {h00=0x002a, h01=0x0050, text=» CM SEG:NS,A1 CLEAR NUMBER OF SEGMENTS«, t00=0x000a, t01=0x0044}
0x100c…1020              Head {h00=0x0010, h01=0x0050, text=»ULD:40 EQU *«, t00=0x000a, t01=0x0072}
0x1020…104c              Head {h00=0x0028, h01=0x0050, text=» ABL LKMQDI QUEUE TASK AND DISPATCH «, t00=0x000a, t01=0x0086}
0x104c…105a              Head {h00=0x000a, h01=0x0050, text=» EJECT«, t00=0x000a, t01=0x00b2}
0x105a…106c              Head {h00=0x000e, h01=0x0050, text=»LOAD EQU *«, t00=0x000a, t01=0x00c0}
0x106c…1076              Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x000a, t01=0x00d2}
0x1076…10b4              Head {h00=0x003a, h01=0x0050, text=»*  ACTIVATE LOAD TASK AT ENTRY LP:LST DISPATCH ADDRESS«, t00=0x000a, t01=0x00dc}
0x10b4…10be              Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x000a, t01=0x011a}
0x10be…10e6              Head {h00=0x0024, h01=0x0050, text=» LDKL A2,LP:LST DISPATCH ADDRESS«, t00=0x000a, t01=0x0124}
0x10e6…1118              Head {h00=0x002e, h01=0x0050, text=» LDR A3,A5 SAVE CALLING TASK TTAB-ADDRESS «, t00=0x000a, t01=0x014c}
0x1118…1124              Head {h00=0x0008, h01=0x0050, text=» INH«, t00=0x000a, t01=0x017e}
0x1124…114e              Head {h00=0x0026, h01=0x0050, text=» CF A15,QLTASK ACTIVATE LOAD TASK «, t00=0x000a, t01=0x018a}
0x114e…115a              Head {h00=0x0008, h01=0x0050, text=» ENB«, t00=0x000b, t01=0x0024}
0x115a…117e              Head {h00=0x0020, h01=0x0050, text=» ABL TDISP GO TO DISPATCHER «, t00=0x000b, t01=0x0030}
0x117e…118c              Head {h00=0x000a, h01=0x0050, text=» EJECT«, t00=0x000b, t01=0x0054}
0x118c…1196              Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x000b, t01=0x0062}
0x1196…11c6              Head {h00=0x002c, h01=0x0050, text=»*  LOAD PROGRAM - RUNNING TASK IS LDTASK«, t00=0x000b, t01=0x006c}
0x11c6…11d0              Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x000b, t01=0x009c}
0x11d0…11e4              Head {h00=0x0010, h01=0x0050, text=»LP:LST EQU *«, t00=0x000b, t01=0x00a6}
0x11e4…1210              Head {h00=0x0028, h01=0x0050, text=» LDKL A14,LD:STB LOAD A14 STACK BASE«, t00=0x000b, t01=0x00ba}
0x1210…123a              Head {h00=0x0026, h01=0x0050, text=» LDR A5,A3 GET CALLING TASKS TTAB «, t00=0x000b, t01=0x00e6}
0x123a…126e              Head {h00=0x0030, h01=0x0050, text=» ST A1,LD:ECB+ECBFN STORE FILE NUMBER IN ECB«, t00=0x000b, t01=0x0110}
0x126e…12a4              Head {h00=0x0032, h01=0x0050, text=» LD A9,TTB:SA+14,A5 GET DISC ADDRESS BITS 0-15«, t00=0x000b, t01=0x0144}
0x12a4…12dc              Head {h00=0x0034, h01=0x0050, text=» LD A10,TTB:SA+16,A5 GET DISC ADDRESS BITS 16-30«, t00=0x000b, t01=0x017a}
0x12dc…1310              Head {h00=0x0030, h01=0x002b, text=» LD A2,SCTFWT START OF FILE WORK TABLE AREA «, t00=0x000c, t01=0x0022}
0x1310…133e              Head {h00=0x002a, h01=0x0026, text=»LP:100 SUK A1,1 FILE WORK TABLE FOUND?«, t00=0x000c, t01=0x0056}
0x133e…1358              Head {h00=0x0016, h01=0x0011, text=» RF(Z) LP:200 YES «, t00=0x000c, t01=0x0084}
0x1358…1382              Head {h00=0x0026, h01=0x0022, text=» AD A2,SCTFWL NEXT FILE WORK TABLE«, t00=0x000c, t01=0x009e}
0x1382…1394              Head {h00=0x000e, h01=0x000a, text=» RB LP:100«, t00=0x000c, t01=0x00c8}
0x1394…13a8              Head {h00=0x0010, h01=0x0050, text=»LP:200 EQU *«, t00=0x000c, t01=0x00da}
0x13a8…13d2              Head {h00=0x0026, h01=0x0050, text=» LDKL A1,LD:BUF GET BUFFER ADDRESS«, t00=0x000c, t01=0x00ee}
0x13d2…13fa              Head {h00=0x0024, h01=0x0050, text=» ST A1,LD:ECB+ECBBA STORE IN ECB«, t00=0x000c, t01=0x0118}
0x13fa…1420              Head {h00=0x0022, h01=0x0050, text=» LDKL A1,256 REQUESTED LENGTH «, t00=0x000c, t01=0x0140}
0x1420…1448              Head {h00=0x0024, h01=0x0050, text=» ST A1,LD:ECB+ECBRL STORE IN ECB«, t00=0x000c, t01=0x0166}
0x1448…1470              Head {h00=0x0024, h01=0x0050, text=» CF A14,RDSFM READ FIRST SECTOR «, t00=0x000c, t01=0x018e}
0x1470…14aa              Head {h00=0x0036, h01=0x0050, text=» LC A6,FWTEXB-1,A2 GET FILE EXTENT BASE (BITS 0-7)«, t00=0x000d, t01=0x0026}
0x14aa…14ce              Head {h00=0x0020, h01=0x0050, text=» ANK A6,/FF ISOLATE ADDRESS «, t00=0x000d, t01=0x0060}
0x14ce…1508              Head {h00=0x0036, h01=0x0050, text=» LD A11,FWTEXB,A2 GET FILE EXTENT BASE (BITS 8-23)«, t00=0x000d, t01=0x0084}
0x1508…151e              Head {h00=0x0012, h01=0x0050, text=» RF(NZ) LP:300«, t00=0x000d, t01=0x00be}
0x151e…1530              Head {h00=0x000e, h01=0x0050, text=» SUK A6,1 «, t00=0x000d, t01=0x00d4}
0x1530…154a              Head {h00=0x0016, h01=0x0050, text=»LP:300 SUKL A11,1 «, t00=0x000d, t01=0x00e6}
0x154a…1578              Head {h00=0x002a, h01=0x0050, text=» CF A14,CHIPLD CHECK IF PROGRAM LOADED«, t00=0x000d, t01=0x0100}
0x1578…15a4              Head {h00=0x0028, h01=0x0050, text=» ADK A1,0 A1=0 IF NO PROGRAM LOADED «, t00=0x000d, t01=0x012e}
0x15a4…15d2              Head {h00=0x002a, h01=0x0050, text=» RF(NZ) LPMEND PROGRAM ALREADY LOADED «, t00=0x000d, t01=0x015a}
0x15d2…1600              Head {h00=0x002a, h01=0x0050, text=» CF A14,GETFST GET FREE SEGMENT TABLE «, t00=0x000d, t01=0x0188}
0x1600…1634              Head {h00=0x0030, h01=0x0050, text=» ADK A1,0 A1=0 IF NO SEGMENT TABLE AVALIABLE«, t00=0x000e, t01=0x0026}
0x1634…1664              Head {h00=0x002c, h01=0x0050, text=» RF(Z) REQERR IMPOSSIBLE TO LOAD PROGRAM«, t00=0x000e, t01=0x005a}
0x1664…1692              Head {h00=0x002a, h01=0x0050, text=» LC A2,FWTVOL,A2 GET VOLUME FILE CODE «, t00=0x000e, t01=0x008a}
0x1692…16c4              Head {h00=0x002e, h01=0x0050, text=» SC A2,SEG:FC+1,A1 STORE IN SEGMENT TABLE «, t00=0x000e, t01=0x00b8}
0x16c4…16f8              Head {h00=0x0030, h01=0x0050, text=» LD A3,LD:BUF+NUMSEG GET NUMBER OF SEGMENTS «, t00=0x000e, t01=0x00ea}
0x16f8…171a              Head {h00=0x001e, h01=0x0050, text=» RF(Z) REQERR NO SEGMENTS!«, t00=0x000e, t01=0x011e}
0x171a…174e              Head {h00=0x0030, h01=0x0050, text=» CW A3,SCTNOS COMPARE TO MAXIMUM NUMBER/TASK«, t00=0x000e, t01=0x0140}
0x174e…1776              Head {h00=0x0024, h01=0x0050, text=» RF(G) REQERR TOO MANY SEGMENTS «, t00=0x000e, t01=0x0174}
0x1776…17b0              Head {h00=0x0036, h01=0x0050, text=» ST A3,SEG:NS,A1 STORE CURRENT NUMBER OF SEGMENTS «, t00=0x000f, t01=0x000c}
0x17b0…17e6              Head {h00=0x0032, h01=0x0050, text=» LDKL A2,LD:BUF+NUMSEG START OF SEGMENT BLOCKS«, t00=0x000f, t01=0x0046}
0x17e6…17f0              Head {h00=0x0006, h01=0x0003, text=»* «, t00=0x000f, t01=0x007c}
0x17f0…1808              Head {h00=0x0014, h01=0x0010, text=»*  STORE BLOCK 0«, t00=0x000f, t01=0x0086}
0x1808…1812              Head {h00=0x0006, h01=0x0003, text=»* «, t00=0x000f, t01=0x009e}
0x1812…183e              Head {h00=0x0028, h01=0x0023, text=» LDKL A4,/8400 STATUS FOR SEGMENT 0 «, t00=0x000f, t01=0x00a8}
0x183e…185e              Head {h00=0x001c, h01=0x0017, text=» STR A4,A1 STORE STATUS «, t00=0x000f, t01=0x00d4}
0x185e…1890              Head {h00=0x002e, h01=0x0050, text=» CM 2,A1 CLEAR STATUS/DISC ADDRESS BIT 0-7«, t00=0x000f, t01=0x00f4}
0x1890…18ba              Head {h00=0x0026, h01=0x0050, text=» CM 6,A1 CLEAR PAGE BLOCK ADDRESS «, t00=0x000f, t01=0x0126}
0x18ba…18e0              Head {h00=0x0022, h01=0x001e, text=» ADK A1,8 START OF SEGMENT ONE«, t00=0x000f, t01=0x0150}
0x18e0…18ea              Head {h00=0x0006, h01=0x0003, text=»* «, t00=0x000f, t01=0x0176}
0x18ea…1908              Head {h00=0x001a, h01=0x0016, text=»*  INIT SEGMENT BLOCKS«, t00=0x000f, t01=0x0180}
0x1908…1912              Head {h00=0x0006, h01=0x0003, text=»* «, t00=0x0010, t01=0x000e}
0x1912…192a              Head {h00=0x0014, h01=0x0050, text=»I:SBLK SUK A3,1 «, t00=0x0010, t01=0x0018}
0x192a…1952              Head {h00=0x0024, h01=0x0020, text=» RF(N) LPMEND NO MOORE SEGMENTS!«, t00=0x0010, t01=0x0030}
0x1952…197a              Head {h00=0x0024, h01=0x0050, text=» CF A14,GETWSG GET DISC ADDRESS «, t00=0x0010, t01=0x0058}
0x197a…19a0              Head {h00=0x0022, h01=0x001d, text=» ANK A4,/FF CLEAR STATUS BYTE «, t00=0x0010, t01=0x0080}
0x19a0…19c8              Head {h00=0x0024, h01=0x0050, text=» ADR A4,A6 RELOCATE DISC ADDRESS«, t00=0x0010, t01=0x00a6}
0x19c8…19f8              Head {h00=0x002c, h01=0x0028, text=» STR A4,A1 STORE STATUS AND DISC ADDRESS«, t00=0x0010, t01=0x00ce}
0x19f8…1a20              Head {h00=0x0024, h01=0x001f, text=» ADK A1,2 DISC ADDRESS BIT 8-22 «, t00=0x0010, t01=0x00fe}
0x1a20…1a52              Head {h00=0x002e, h01=0x0050, text=» CF A14,GETWSG GET DISC ADDRESS BITS 8-22 «, t00=0x0010, t01=0x0126}
0x1a52…1a7c              Head {h00=0x0026, h01=0x0050, text=» ADR A4,A11 RELOCATE DISC ADDRESS «, t00=0x0010, t01=0x0158}
0x1a7c…1a96              Head {h00=0x0016, h01=0x0011, text=» STR A4,A1 STORE  «, t00=0x0010, t01=0x0182}
0x1a96…1ab6              Head {h00=0x001c, h01=0x0018, text=» ADK A1,2 SEGMENT LENGTH«, t00=0x0011, t01=0x000c}
0x1ab6…1ae0              Head {h00=0x0026, h01=0x0050, text=» CF A14,GETWSG GET SEGMENT LENGTH «, t00=0x0011, t01=0x002c}
0x1ae0…1af8              Head {h00=0x0014, h01=0x0010, text=» STR A4,A1 STORE«, t00=0x0011, t01=0x0056}
0x1af8…1b22              Head {h00=0x0026, h01=0x0050, text=» CM 2,A1 CLEAR PAGE BLOCK ADDRESS «, t00=0x0011, t01=0x006e}
0x1b22…1b46              Head {h00=0x0020, h01=0x001c, text=» ADK A1,4 NEXT SEGMENT BLOCK«, t00=0x0011, t01=0x0098}
0x1b46…1b58              Head {h00=0x000e, h01=0x000a, text=» RB I:SBLK«, t00=0x0011, t01=0x00bc}
0x1b58…1b66              Head {h00=0x000a, h01=0x0050, text=» EJECT«, t00=0x0011, t01=0x00ce}
0x1b66…1b7a              Head {h00=0x0010, h01=0x0050, text=»LPMEND EQU *«, t00=0x0011, t01=0x00dc}
0x1b7a…1ba8              Head {h00=0x002a, h01=0x0050, text=» ABL QMEXIT QUEUE TASK FOR DISPATCHING«, t00=0x0011, t01=0x00f0}
0x1ba8…1bb0              Head {h00=0x0004, h01=0x0050, t00=0x0011, t01=0x011e}
0x1bb0…1bba              Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x0011, t01=0x0126}
0x1bba…1bd0              Head {h00=0x0012, h01=0x0050, text=»*  ERROR ENTRY«, t00=0x0011, t01=0x0130}
0x1bd0…1bda              Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x0011, t01=0x0146}
0x1bda…1c0a              Head {h00=0x002c, h01=0x0050, text=»REQERR LDKL A7,-1 INDICATE REQUEST ERROR«, t00=0x0011, t01=0x0150}
0x1c0a…1c42              Head {h00=0x0034, h01=0x0050, text=»DSKERR ST A7,TTB:SA+14,A5 SET RETURN CODE IN A7 «, t00=0x0011, t01=0x0180}
0x1c42…1c54              Head {h00=0x000e, h01=0x0050, text=» RB LPMEND«, t00=0x0012, t01=0x0028}
0x1c54…1c62              Head {h00=0x000a, h01=0x0006, text=» EJECT«, t00=0x0012, t01=0x003a}
0x1c62…1ca2              Head {h00=0x003c, h01=0x0038, text=»***************** INTERNAL SUBROUTINES *****************«, t00=0x0012, t01=0x0048}
0x1ca2…1caa              Head {h00=0x0004, h01=0x0002, t00=0x0012, t01=0x0088}
0x1caa…1cb2              Head {h00=0x0004, h01=0x0002, t00=0x0012, t01=0x0090}
0x1cb2…1cbc              Head {h00=0x0006, h01=0x0003, text=»* «, t00=0x0012, t01=0x0098}
0x1cbc…1ce2              Head {h00=0x0022, h01=0x001e, text=»*  GETWSG - GET WORD IN S:GTAB«, t00=0x0012, t01=0x00a2}
0x1ce2…1cec              Head {h00=0x0006, h01=0x0003, text=»* «, t00=0x0012, t01=0x00c8}
0x1cec…1d16              Head {h00=0x0026, h01=0x0021, text=»*  ENTRY:  A2 - POINTER IN S:GTAB «, t00=0x0012, t01=0x00d2}
0x1d16…1d20              Head {h00=0x0006, h01=0x0002, text=»* «, t00=0x0012, t01=0x00fc}
0x1d20…1d46              Head {h00=0x0022, h01=0x001e, text=»*  EXIT:  A2 - ENTRY VALUE + 2«, t00=0x0012, t01=0x0106}
0x1d46…1d82              Head {h00=0x0038, h01=0x0034, text=»*         A4 - CONTENTS IN LOCATION POINTED AT BY A2«, t00=0x0012, t01=0x012c}
0x1d82…1d8c              Head {h00=0x0006, h01=0x0003, text=»* «, t00=0x0012, t01=0x0168}
0x1d8c…1daa              Head {h00=0x001a, h01=0x0016, text=»*  SUBROUTINES:  RDSFM«, t00=0x0012, t01=0x0172}
0x1daa…1db4              Head {h00=0x0006, h01=0x0003, text=»* «, t00=0x0012, t01=0x0190}
0x1db4…1de4              Head {h00=0x002c, h01=0x0028, text=»GETWSG ADK A2,2 INCREMENT S:GTAB POINTER«, t00=0x0013, t01=0x000a}
0x1de4…1e0a              Head {h00=0x0022, h01=0x0050, text=» CWK A2,LD:BUE END OF SECTOR? «, t00=0x0013, t01=0x003a}
0x1e0a…1e28              Head {h00=0x001a, h01=0x0016, text=» RF(NE) GETRTN NOT YET«, t00=0x0013, t01=0x0060}
0x1e28…1e4e              Head {h00=0x0022, h01=0x0050, text=» CF A14,RDSFM READ NEXT SECTOR«, t00=0x0013, t01=0x007e}
0x1e4e…1e76              Head {h00=0x0024, h01=0x001f, text=» LDKL A2,LD:BUF START OF BUFFER «, t00=0x0013, t01=0x00a4}
0x1e76…1e9c              Head {h00=0x0022, h01=0x001d, text=»GETRTN LDR* A4,A2 GET CONTENT «, t00=0x0013, t01=0x00cc}
0x1e9c…1eac              Head {h00=0x000c, h01=0x0050, text=» RTN A14«, t00=0x0013, t01=0x00f2}
0x1eac…1eba              Head {h00=0x000a, h01=0x0006, text=» EJECT«, t00=0x0013, t01=0x0102}
0x1eba…1ec4              Head {h00=0x0006, h01=0x0003, text=»* «, t00=0x0013, t01=0x0110}
0x1ec4…1ef6              Head {h00=0x002e, h01=0x002a, text=»*  RDSFM - READ SECTOR VIA FILE MANAGEMENT«, t00=0x0013, t01=0x011a}
0x1ef6…1f00              Head {h00=0x0006, h01=0x0003, text=»* «, t00=0x0013, t01=0x014c}
0x1f00…1f3c              Head {h00=0x0038, h01=0x0034, text=»*  ENTRY:  ECB CONTAINING FILE NUMBER,BUFFER ADDRESS«, t00=0x0013, t01=0x0156}
0x1f3c…1f72 (20, 0, 400) Head {h00=0x0032, h01=0x002e, text=»*          REQUESTED LENGTH AND SECTOR ADDRESS«, t00=0x0014, t01=0x0004}
0x1f72…1f7c              Head {h00=0x0006, h01=0x0003, text=»* «, t00=0x0014, t01=0x003a}
0x1f7c…1fb2              Head {h00=0x0032, h01=0x002e, text=»*  EXIT:  SECTOR ADDRESS IS INCREMENTED BY ONE«, t00=0x0014, t01=0x0044}
0x1fb2…1fbc              Head {h00=0x0006, h01=0x0003, text=»* «, t00=0x0014, t01=0x007a}
0x1fbc…1fde              Head {h00=0x001e, h01=0x0019, text=»*  WORK REGISTERS:  A7,A8 «, t00=0x0014, t01=0x0084}
0x1fde…1fe8              Head {h00=0x0006, h01=0x0003, text=»* «, t00=0x0014, t01=0x00a6}
0x1fe8…200e              Head {h00=0x0022, h01=0x0050, text=»RDSFM LDK A7,PHYRD LOAD ORDER «, t00=0x0014, t01=0x00b0}
0x200e…2036              Head {h00=0x0024, h01=0x0050, text=» LDKL A8,LD:ECB LOAD ECB-ADDRESS«, t00=0x0014, t01=0x00d6}
0x2036…2070              Head {h00=0x0036, h01=0x0050, text=» ST A9,LD:ECB+ECBCW1 STORE DISC ADDRESS BITS 0-15 «, t00=0x0014, t01=0x00fe}
0x2070…20ac              Head {h00=0x0038, h01=0x0050, text=» ST A10,LD:ECB+ECBCW2 STORE DISC ADDRESS BITS 16-30 «, t00=0x0014, t01=0x0138}
0x20ac…20b8              Head {h00=0x0008, h01=0x0004, text=» LKM«, t00=0x0014, t01=0x0174}
0x20b8…20c8              Head {h00=0x000c, h01=0x0008, text=» DATA 15«, t00=0x0014, t01=0x0180}
0x20c8…20d2              Head {h00=0x0006, h01=0x0003, text=»* «, t00=0x0014, t01=0x0190}
0x20d2…20ee              Head {h00=0x0018, h01=0x0014, text=»*  CHECK RETURN CODE«, t00=0x0015, t01=0x000a}
0x20ee…20f8              Head {h00=0x0006, h01=0x0003, text=»* «, t00=0x0015, t01=0x0026}
0x20f8…2124              Head {h00=0x0028, h01=0x0050, text=» LD A7,LD:ECB+ECBRC GET RETURN CODE «, t00=0x0015, t01=0x0030}
0x2124…214a              Head {h00=0x0022, h01=0x0050, text=» ANKL A7,/FEFF SKIP RETRY BIT «, t00=0x0015, t01=0x005c}
0x214a…2164              Head {h00=0x0016, h01=0x0050, text=» RF(Z) RDSF10 OK! «, t00=0x0015, t01=0x0082}
0x2164…218e              Head {h00=0x0026, h01=0x0050, text=» ANK A7,1 BIT 15=DISC NOT OPERABLE«, t00=0x0015, t01=0x009c}
0x218e…21b4              Head {h00=0x0022, h01=0x0050, text=» NGR A7,A7 TAKE 2'S COMPLEMENT«, t00=0x0015, t01=0x00c6}
0x21b4…21dc              Head {h00=0x0024, h01=0x0050, text=» SUK A7,2 SET ERROR RETURN CODE «, t00=0x0015, t01=0x00ec}
0x21dc…21ee              Head {h00=0x000e, h01=0x0050, text=» RB DSKERR«, t00=0x0015, t01=0x0114}
0x21ee…21f8              Head {h00=0x0006, h01=0x0003, text=»* «, t00=0x0015, t01=0x0126}
0x21f8…221c              Head {h00=0x0020, h01=0x001b, text=»*  INCREMENT SECTOR ADDRESS «, t00=0x0015, t01=0x0130}
0x221c…2226              Head {h00=0x0006, h01=0x0003, text=»* «, t00=0x0015, t01=0x0154}
0x2226…2256              Head {h00=0x002c, h01=0x0050, text=»RDSF10 ADKL A10,1 INCR. LEAST SIGN. PART«, t00=0x0015, t01=0x015e}
0x2256…2276              Head {h00=0x001c, h01=0x0018, text=» RF(NN) RDSRET OVERFLOW?«, t00=0x0015, t01=0x018e}
0x2276…229e              Head {h00=0x0024, h01=0x0050, text=» ADKL A9,1 INCR. MOST SIGN. PART«, t00=0x0016, t01=0x001e}
0x229e…22c4              Head {h00=0x0022, h01=0x0050, text=» RB(Z) REQERR ADDRESS OVERFLOW«, t00=0x0016, t01=0x0046}
0x22c4…22e4              Head {h00=0x001c, h01=0x0050, text=» XRR A10,A10 RESET CARRY«, t00=0x0016, t01=0x006c}
0x22e4…22fa              Head {h00=0x0012, h01=0x0050, text=»RDSRET RTN A14«, t00=0x0016, t01=0x008c}
0x22fa…2308              Head {h00=0x000a, h01=0x0050, text=» EJECT«, t00=0x0016, t01=0x00a2}
0x2308…2312              Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x0016, t01=0x00b0}
0x2312…231c              Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x0016, t01=0x00ba}
0x231c…2348              Head {h00=0x0028, h01=0x0050, text=»*  CHIPLD - CHECK IF PROGRAM LOADED «, t00=0x0016, t01=0x00c4}
0x2348…2352              Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x0016, t01=0x00f0}
0x2352…2384              Head {h00=0x002e, h01=0x0050, text=»*  ENTRY:  A6 - FILE EXTENT BASE BITS 0-7 «, t00=0x0016, t01=0x00fa}
0x2384…23b6              Head {h00=0x002e, h01=0x0050, text=»*         A11 - FILE EXTENT BASE BITS 8-23«, t00=0x0016, t01=0x012c}
0x23b6…23e4              Head {h00=0x002a, h01=0x0050, text=»*         LD:BUF CONTAINS FIRST SECTOR«, t00=0x0016, t01=0x015e}
0x23e4…23ee              Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x0016, t01=0x018c}
0x23ee…241a              Head {h00=0x0028, h01=0x0050, text=»*  EXIT:  A1=0 - PROGRAM NOT LOADED «, t00=0x0017, t01=0x0008}
0x241a…244a              Head {h00=0x002c, h01=0x0050, text=»*         A1<>0 - SEGMENT TABLE ADDRESS «, t00=0x0017, t01=0x0034}
0x244a…2454              Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x0017, t01=0x0064}
0x2454…247e              Head {h00=0x0026, h01=0x0050, text=»*  WORK REGISTERS:  A1,A3,A4,A7,A8«, t00=0x0017, t01=0x006e}
0x247e…2488              Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x0017, t01=0x0098}
0x2488…249c              Head {h00=0x0010, h01=0x0050, text=»CHIPLD EQU *«, t00=0x0017, t01=0x00a2}
0x249c…24c6              Head {h00=0x0026, h01=0x0050, text=» LD A7,SCTTCT GET ADDRESS TO TCTAB«, t00=0x0017, t01=0x00b6}
0x24c6…24ee              Head {h00=0x0024, h01=0x0050, text=» LDR* A8,A7 GET LENGTH OF TCTAB «, t00=0x0017, t01=0x00e0}
0x24ee…2502              Head {h00=0x0010, h01=0x0050, text=»CHPL10 EQU *«, t00=0x0017, t01=0x0108}
0x2502…2522              Head {h00=0x001c, h01=0x0050, text=» SUKL A8,2 MOORE TASKS? «, t00=0x0017, t01=0x011c}
0x2522…253c              Head {h00=0x0016, h01=0x0050, text=» RF(Z) CHPL50 NO! «, t00=0x0017, t01=0x013c}
0x253c…2562              Head {h00=0x0022, h01=0x0050, text=» ADK A7,2 NEXT ENTRY IN TCTAB «, t00=0x0017, t01=0x0156}
0x2562…258c              Head {h00=0x0026, h01=0x0050, text=» LDR* A1,A7 GET NEXT TTAB-ADDRESS «, t00=0x0017, t01=0x017c}
0x258c…25be              Head {h00=0x002e, h01=0x0050, text=» LD A1,TTB:SP,A1 GET SEGMENT TABLE POINTER«, t00=0x0018, t01=0x0016}
0x25be…25ee              Head {h00=0x002c, h01=0x0050, text=» RB(Z) CHPL10 NO SEGMENT TABLE ATTACHED «, t00=0x0018, t01=0x0048}
0x25ee…2620              Head {h00=0x002e, h01=0x0050, text=» LD A3,LD:BUF+12 GET DISC ADDRESS BITS 0-7«, t00=0x0018, t01=0x0078}
0x2620…2644              Head {h00=0x0020, h01=0x0050, text=» ANK A3,/FF ISOLATE ADDRESS «, t00=0x0018, t01=0x00aa}
0x2644…2668              Head {h00=0x0020, h01=0x0050, text=» ADR A3,A6 RELOCATE ADDRESS «, t00=0x0018, t01=0x00ce}
0x2668…269e              Head {h00=0x0032, h01=0x0050, text=» LD A4,8,A1 GET DISC ADDRESS IN SEGMENT TABLE «, t00=0x0018, t01=0x00f2}
0x269e…26c2              Head {h00=0x0020, h01=0x0050, text=» ANK A4,/FF ISOLATE ADDRESS «, t00=0x0018, t01=0x0128}
0x26c2…26f2              Head {h00=0x002c, h01=0x0050, text=» CWR A3,A4 MOST SIGNIFICANT BITS EQUAL? «, t00=0x0018, t01=0x014c}
0x26f2…270c              Head {h00=0x0016, h01=0x0050, text=» RB(NE) CHPL10 NO «, t00=0x0018, t01=0x017c}
0x270c…2740              Head {h00=0x0030, h01=0x0050, text=» LD A3,LD:BUF+14 GET DISC ADDRESS BITS 8-23 «, t00=0x0019, t01=0x0008}
0x2740…275c              Head {h00=0x0018, h01=0x0050, text=» ADR A3,A11 RELOCATE«, t00=0x0019, t01=0x003c}
0x275c…2792              Head {h00=0x0032, h01=0x0050, text=» LD A4,10,A1 GET DISC ADDRES IN SEGMENT TABLE «, t00=0x0019, t01=0x0058}
0x2792…27c2              Head {h00=0x002c, h01=0x0050, text=» CWR A3,A4 LEAST SIGNIFICANT PART EQUAL?«, t00=0x0019, t01=0x008e}
0x27c2…27dc              Head {h00=0x0016, h01=0x0050, text=» RB(NE) CHPL10 NO «, t00=0x0019, t01=0x00be}
0x27dc…27ee              Head {h00=0x000e, h01=0x0050, text=» RF CHPL90«, t00=0x0019, t01=0x00d8}
0x27ee…2802              Head {h00=0x0010, h01=0x0050, text=»CHPL50 EQU *«, t00=0x0019, t01=0x00ea}
0x2802…2830              Head {h00=0x002a, h01=0x0050, text=» XRR A1,A1 CLEAR SEGMENT TABLE POINTER«, t00=0x0019, t01=0x00fe}
0x2830…2844              Head {h00=0x0010, h01=0x0050, text=»CHPL90 EQU *«, t00=0x0019, t01=0x012c}
0x2844…2878              Head {h00=0x0030, h01=0x0050, text=» ST A1,TTB:SP,A5 STORE SEGMENT TABLE POINTER«, t00=0x0019, t01=0x0140}
0x2878…2888              Head {h00=0x000c, h01=0x0050, text=» RTN A14«, t00=0x0019, t01=0x0174}
0x2888…2896              Head {h00=0x000a, h01=0x0050, text=» EJECT«, t00=0x0019, t01=0x0184}
0x2896…28a0 (26, 0, 400) Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x001a, t01=0x0004}
0x28a0…28ca              Head {h00=0x0026, h01=0x0050, text=»*  GETFST - GET FREE SEGMENT TABLE«, t00=0x001a, t01=0x000e}
0x28ca…28d4              Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x001a, t01=0x0038}
0x28d4…28e6              Head {h00=0x000e, h01=0x0050, text=»*  ENTRY: «, t00=0x001a, t01=0x0042}
0x28e6…28f0              Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x001a, t01=0x0054}
0x28f0…291c              Head {h00=0x0028, h01=0x0050, text=»*  EXIT:  A1 - SEGMENT TABLE POINTER«, t00=0x001a, t01=0x005e}
0x291c…2926              Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x001a, t01=0x008a}
0x2926…2946              Head {h00=0x001c, h01=0x0050, text=»*  WORK REGISTER:  A1,A3«, t00=0x001a, t01=0x0094}
0x2946…2950              Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x001a, t01=0x00b4}
0x2950…2964              Head {h00=0x0010, h01=0x0050, text=»GETFST EQU *«, t00=0x001a, t01=0x00be}
0x2964…2990              Head {h00=0x0028, h01=0x0050, text=» LD A1,TTB:AP,A5 GET ADDRESS TO ACB «, t00=0x001a, t01=0x00d2}
0x2990…29c8              Head {h00=0x0034, h01=0x0050, text=» LD A1,ACBSEG,A1 GET START OF SEGMENT TABLE POOL«, t00=0x001a, t01=0x00fe}
0x29c8…29ea              Head {h00=0x001e, h01=0x0050, text=» ADK A1,4 SEGMENT BLOCK 0 «, t00=0x001a, t01=0x0136}
0x29ea…29fe              Head {h00=0x0010, h01=0x0050, text=»GFST10 EQU *«, t00=0x001a, t01=0x0158}
0x29fe…2a2e              Head {h00=0x002c, h01=0x0050, text=» LD A3,SEG:NS,A1 GET NUMBER OF SEGMENTS «, t00=0x001a, t01=0x016c}
0x2a2e…2a4c              Head {h00=0x001a, h01=0x0050, text=» RF(Z) GFST30 NOT USED«, t00=0x001b, t01=0x000c}
0x2a4c…2a60              Head {h00=0x0010, h01=0x0050, text=»GFST20 EQU *«, t00=0x001b, t01=0x002a}
0x2a60…2a90              Head {h00=0x002c, h01=0x0050, text=» LD A1,SEG:EL,A1 GET SEGMENT TABLE LINK «, t00=0x001b, t01=0x003e}
0x2a90…2abc              Head {h00=0x0028, h01=0x0050, text=» RF(Z) GFST40 NO MORE SEGMENT TABLES«, t00=0x001b, t01=0x006e}
0x2abc…2aea              Head {h00=0x002a, h01=0x0050, text=» SUK A1,4 ADJUST SEGMENT TABLE POINTER«, t00=0x001b, t01=0x009a}
0x2aea…2b0e              Head {h00=0x0020, h01=0x0050, text=» RB GFST10 CHECK NEXT SEGTAB«, t00=0x001b, t01=0x00c8}
0x2b0e…2b22              Head {h00=0x0010, h01=0x0050, text=»GFST30 EQU *«, t00=0x001b, t01=0x00ec}
0x2b22…2b56              Head {h00=0x0030, h01=0x0050, text=» ST A1,TTB:SP,A5 STORE SEGMENT TABLE POINTER«, t00=0x001b, t01=0x0100}
0x2b56…2b5e              Head {h00=0x0004, h01=0x0050, t00=0x001b, t01=0x0134}
0x2b5e…2b72              Head {h00=0x0010, h01=0x0050, text=»GFST40 EQU *«, t00=0x001b, t01=0x013c}
0x2b72…2b8a              Head {h00=0x0014, h01=0x0050, text=» RTN A14 RETURN «, t00=0x001b, t01=0x0150}
0x2b8a…2b96              Head {h00=0x0008, h01=0x0004, text=» END«, t00=0x001b, t01=0x0168}
0x2b96…2b9a              Head {h00=0x4004, h01=0x0000}
0x2b9a…2b9e              00 1b 01 74                                                                                                                                                                                                                                       ┆   t┆
0x2b9e…2ba6 (28, 1, 8)   20 04 00 00 00 1c 00 04                                                                                                                                                                                                                           ┆        ┆

Reduced view