cdc:nos2.source:opl871:ddfile
Table of Contents
DDFILE
Table Of Contents
- [00008] DDFILE - DDF UTILITY FUNCTION PROCESSOR.
- [00012] *DDF* UTILITY FUNCTION PROCESSOR.
- [00058] DDF - MAIN PROGRAM.
- [00072] TFCN - TABLE OF FUNCTION PROCESSORS.
- [00088] FUNCTION 0 - END PROGRAM.
- [00094] FUNCTION 1 - PRINT.
- [00299] FUNCTION 2 - CHANGE LISTING FILE NAME.
- [00311] FUNCTION 3 - RELEASE LISTING FILE TO QUEUE.
- [00342] FUNCTION 4 - REWIND LISTING FILE.
- [00349] FUNCTION 5 - SKIP TO EOI.
- [00357] FUNCTION 6 - RETURN FILE.
- [00364] FUNCTION 7 - SETID.
- [00379] CMF - COMPLETE FILE.
- [00421] PRS - PRESET.
Source Code
- DDFILE.txt
- IDENT DDFILE,FETS,DDFILE
- ABS
- SST
- SYSCOM B1
- ENTRY DDFILE
- ENTRY MFL=
- ENTRY SSJ=
- TITLE DDFILE - DDF UTILITY FUNCTION PROCESSOR.
- *COMMENT DDFILE - DDF UTILITY FUNCTION PROCESSOR.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- DDF SPACE 4,10
- *** DDFILE - *DDF* UTILITY FUNCTION PROCESSOR.
- *
- * J. J. EIKUM. 74/04/06.
- DDF SPACE 4,10
- *** *DDFILE* PROCESSES FUNCTIONS RELATING TO THE LISTING
- * FILE FOR *DDF*. *DDFILE* IS LOADED AUTOMATICALLY BY *DDF*.
- SPACE 4,10,15
- *** DAYFILE MESSAGES.
- *
- * * LISTING FILE DOES NOT EXIST.* = THERE WAS NO LISTING
- * FILE TO BE RELEASED.
- DDF SPACE 4,10
- * COMMON DECKS.
- *CALL COMCMAC
- *CALL COMSDSP
- *CALL COMSPRD
- *CALL COMSSSD
- *CALL COMSSSJ
- DDF SPACE 4,10
- **** ASSEMBLY CONSTANTS.
- DBUFL EQU 102B
- OBUFL EQU 1001B
- D EQU 5 CPU STATUS WORD
- ****
- DDF SPACE 4,10
- ** FETS.
- ORG 101B
- FETS BSS 0
- O BSS 0
- OUTPUT FILEB OBUF,OBUFL,(FET=7),(EPR)
- SPACE 4,10
- * *SSJ=* SPECIAL ENTRY POINT.
- SSJ= BSS 0 SPECIAL SYSTEM JOB PARAMETER BLOCK
- VFD 36/0,12/LSCS,12/IRSI
- BSSZ SSJL-1
- DDF TITLE MAIN PROGRAM.
- ** DDF - MAIN PROGRAM.
- DDF SX6 3RDDF WAIT FOR REQUEST
- LX6 42
- SA6 D
- RECALL A6
- SA1 D GET FUNCTION NUMBER
- SX2 X1
- AX2 1
- SA3 TFCN+X2
- SB2 X3
- JP B2 JUMP TO PROCESSOR
- TFCN SPACE 4,10
- ** TFCN - TABLE OF FUNCTION PROCESSORS.
- TFCN BSS 0 FUNCTION PROCESSORS.
- LOC 0
- CON END END PROGRAM
- CON PRT PRINT
- CON COF CHANGE LISTING FILE NAME
- CON OUT RELEASE LISTING FILE TO QUEUE
- CON REW REWIND LISTING FILE
- CON SKP SKIP TO EOI
- CON RET RETURN FILE
- CON SID SETID
- LOC *O
- DDF TITLE FUNCTION PROCESSORS.
- END SPACE 4,10
- ** FUNCTION 0 - END PROGRAM.
- END RJ CMF COMPLETE FILE
- ENDRUN
- PRT SPACE 4,10
- ** FUNCTION 1 - PRINT.
- *
- * ENTRY (DBUF) = 12/EQ,12/TK,12/SC,24/CONTROL BYTES.
- * (DBUF+1) = 12/(TRT),12/TRACK BITS,18/ ,18/ADDRESS.
- * (DBUF+2 - DBUF+65) = CONTENTS OF SECTOR.
- * OUTPUT PAGE HEADER.
- PRT CLOCK PRTF TIME
- DATE PRTE DATE
- SA5 DBUF
- MX0 -12
- LX5 12
- BX1 -X0*X5
- RJ COD CONVERT EST ORDINAL
- BX7 X4
- LX5 12
- LX7 9*6
- BX1 -X0*X5
- SA7 PRTB
- RJ COD TRACK
- SA1 PRTC
- MX2 5*6
- BX4 X2*X1
- BX3 -X2*X6
- LX5 12
- BX6 X3+X4
- SA6 A1
- BX1 -X0*X5
- RJ COD SECTOR
- MX1 9*6
- SX2 1R.
- LX6 6
- BX3 X1*X6
- BX6 X3+X2
- LX6 5*6
- LX5 24
- MX0 -24
- SA6 PRTD
- BX1 -X0*X5
- RJ WOD LINKAGE BYTES
- MX0 -24
- BX1 -X0*X7
- SX2 2R
- LX7 6*6
- BX3 -X0*X7
- LX2 4*6
- LX3 6*6
- BX4 X1+X2
- SA1 DBUF
- BX6 X4+X3
- MX0 -12
- SA6 PRTH
- BX2 -X0*X1
- AX1 12
- SA5 =3R
- BX1 -X0*X1
- SA4 PRTI
- NZ X1,PRT2 IF NOT EOF OR EOI
- SX7 B0+
- NZ X2,PRT1 IF NOT EOI
- SX5 3REOI
- EQ PRT3 PRINT EOI
- PRT1 SX5 3REOF
- EQ PRT3 PRINT EOF
- PRT2 SX3 X2-100B
- SX7 X2+
- ZR X3,PRT3 IF NOT EOR
- SX5 3REOR
- PRT3 MX0 7*6
- SA7 PRTN SAVE WORD COUNT
- BX2 X0*X4
- BX6 X2+X5
- SA6 A4
- WRITEC O,PRTA
- WRITEC O,PRTJ
- WRITEC O,PRTG
- WRITEC O,PRTJ
- WRITEC O,PRTJ
- * OUTPUT ONE CM WORD.
- SA0 B0+
- PRT4 SX1 A0
- RJ COD CM WORD NUMBER
- SX1 5
- SX2 A0
- IX3 X1*X2
- SB2 X6+
- SX1 X3+2
- RJ WOD BYTE NUMBER
- MX1 -4*6
- MX3 -3*6
- BX4 -X1*X7
- SX2 B2+
- SA1 PRTK
- BX5 -X3*X2
- LX4 6
- LX5 7*6
- IX7 X4+X1
- BX6 X5+X7
- WRITEO O PRINT WORD AND BYTE NUMBERS
- SA1 A0+DBUF+2 OUTPUT CONTENTS OF NEXT CM WORD
- RJ WOD CONVERT WORD
- MX1 4*6
- BX0 X7
- BX2 X1*X6
- LX6 4*6
- BX3 X1*X6
- SA1 PRTL
- LX2 9*6
- LX3 4*6
- BX4 X2+X3
- BX5 X6
- BX6 X4+X1
- WRITEO O
- LX5 4*6
- MX1 2*6
- BX3 X1*X0
- BX2 X1*X5
- LX3 8*6
- LX0 2*6
- MX1 4*6
- BX4 X2+X3
- BX2 X1*X0
- SA1 PRTL
- LX4 9*6
- LX2 4*6
- BX5 X2+X4
- BX6 X5+X1
- WRITEO O
- LX0 4*6
- MX2 4*6
- BX1 X2*X0
- RJ ZTB BLANK FILL
- SA1 PRTN
- SX2 A0
- LX6 9*6
- IX3 X2-X1
- NZ X3,PRT5 IF NOT AT WORD COUNT
- MX2 30
- SA1 PRTM
- BX3 X2*X6
- BX6 X3+X1
- PRT5 WRITEO O
- SA1 A0+DBUF+2 OUTPUT DISPLAY CODE
- RJ ZTB BLANK FILL
- WRITEO O
- * ADVANCE TO NEXT WORD.
- SA1 PRTO
- NZ X1,PRT6 IF JUST PRINTED SECOND HALF OF LINE
- SX7 40B
- SA2 =10H
- SA0 A0+40B
- SA7 A1
- BX6 X2
- WRITEO O
- SA2 =10H
- BX6 X2
- WRITEO O
- EQ PRT4 LOOP TO PRINT SECOND HALF OF LINE
- PRT6 MX6 0
- SA0 A0-40B+1
- SA6 A1
- WRITEO O TERMINATE LINE
- SX1 A0-40B
- ZR X1,PRT7 IF END OF BUFFER
- LX1 15
- SX2 X1
- NZ X2,PRT4 IF NO BLANK LINE NEEDED
- SX6 1R0
- LX6 9*6
- WRITEO O
- EQ PRT4 LOOP
- PRT7 SA0 B1
- EQ DDF RETURN
- PRTA DATA 10H1 EST ORD.
- PRTB DATA 10H EE
- PRTC DATA 10HTRACK TTTT
- DATA 10H SECTOR
- PRTD DATA 10HNNNN.
- DATA 30H
- PRTE DATA 10H DATE
- PRTF DATA 10H TIME
- DATA 2C
- PRTG DATA 20H- LINKAGE BYTES =
- PRTH DATA 10HNNNN NNNN
- PRTI DATA 10H. EOI
- DATA 2C
- PRTJ VFD 12/2R- ,48/0
- PRTK VFD 18/0,12/2R (,24/0,6/1R)
- PRTL VFD 6/1R ,24/0,6/1R ,24/0
- PRTM VFD 30/0,30/5R#####
- PRTN CON 0 WORD COUNT
- PRTO CON 0 POINTER BIAS
- COF SPACE 4,10
- ** FUNCTION 2 - CHANGE LISTING FILE NAME.
- *
- * ENTRY (DBUF) = 42/FILE NAME,18/0.
- COF RJ CMF FLUSH BUFFER IF NECCESSARY
- SA1 DBUF
- SX2 B1
- BX6 X1+X2
- SA6 O SET NEW FILE NAME
- EQ DDF RETURN
- OUT SPACE 4,10
- ** FUNCTION 3 - RELEASE LISTING FILE TO QUEUE.
- OUT RJ CMF COMPLETE FILE
- SA5 O SAVE FET+0
- STATUS O CHECK IF FILE EXISTS
- BX6 X5
- MX3 -11
- SA1 X2
- SA6 X2
- LX3 12-11
- BX3 -X3*X1
- ZR X3,OUT1 IF FILE DOES NOT EXIST
- MX6 42
- BX6 X6*X1
- SA6 OUTA SET FILE NAME IN *DSP* PARAMETER BLOCK
- ROUTE OUTA,R
- SA1 OUTA+1 CLEAR *TID* FLAG BIT
- SX3 FRTI
- BX6 -X3*X1
- SA6 A1
- EQ DDF RETURN
- OUT1 MESSAGE (=C* LISTING FILE DOES NOT EXIST.*),3,R
- EQ DDF RETURN
- OUTA VFD 42/0LOUTPUT,18/0
- VFD 24/0,12/2HPR,6/0,18/FRDC+FRCS
- BSSZ 5
- REW SPACE 4,10
- ** FUNCTION 4 - REWIND LISTING FILE.
- REW RJ CMF COMPLETE FILE
- REWIND O
- EQ DDF RETURN
- SKP SPACE 4,10
- ** FUNCTION 5 - SKIP TO EOI.
- SKP SB2 A0
- NZ B2,DDF IF CURRENTLY WRITING ON FILE
- SKIPEI O
- EQ DDF RETURN
- RET SPACE 4,10
- ** FUNCTION 6 - RETURN FILE.
- RET RJ CMF COMPLETE FILE
- RETURN O
- EQ DDF RETURN
- SID SPACE 4,10
- ** FUNCTION 7 - SETID.
- *
- * ENTRY (DBUF) = ID.
- SID SA1 DBUF
- SA2 OUTA+1 SET *TID* FLAG BIT
- SX3 FRTI
- BX6 X2+X3
- SA6 A2
- BX6 X1 SET *TID* FIELD
- SA6 A6+B1
- EQ DDF RETURN
- DDF TITLE SUBROUTINES.
- CMF SPACE 4,10
- ** CMF - COMPLETE FILE.
- *
- * ENTRY (A0) .NE. 0 IF BUFFER FLUSH REQUIRED.
- *
- * EXIT (A0) = 0.
- *
- * USES B - 2.
- *
- * MACROS WRITER.
- CMF SUBR ENTRY/EXIT
- SB2 A0
- ZR B2,CMFX IF WRITE NOT NEEDED
- WRITER O,R
- SA0 B0
- EQ CMFX RETURN
- DDF SPACE 4,10
- * COMMON DECKS.
- *CALL COMCCIO
- *CALL COMCCOD
- *CALL COMCLFM
- *CALL COMCSYS
- *CALL COMCWOD
- *CALL COMCWTC
- *CALL COMCWTO
- *CALL COMCWTW
- *CALL COMCZTB
- DDF SPACE 4,10
- * BUFFERS.
- USE BUFFERS
- DBUF EQU *
- OBUF EQU DBUF+DBUFL
- EBUF EQU OBUF+OBUFL END OF BUFFERS
- MFL= EQU EBUF+8 MINIMUM MEMORY REQUIRED FOR PROGRAM
- PRS TITLE PRESET.
- PRS SPACE 4,10
- ** PRS - PRESET.
- *
- * EXIT (RA+2) = POINTER TO OUTPUT FILE.
- * (RA+3) = POINTER TO *DBUF*.
- * (RA+4) = LWA+1 OF *DDFILE*.
- * (A0) = 0.
- DDFILE BSS 0
- PRS SA1 O SET UP POINTERS
- SB1 1
- MX2 42
- SX3 A1
- SX7 DBUF
- BX4 X2*X1
- BX6 X4+X3
- SA6 B1+B1
- SA7 A6+B1
- SX6 MFL=
- SA6 A7+B1
- SA0 B0 DESELECT WRITE FLAG
- EQ DDF ENTER LOOP
- SPACE 4,10
- END
cdc/nos2.source/opl871/ddfile.txt ยท Last modified: 2023/08/05 17:24 by Site Administrator