+* F4$IOS-B - DEC 12 2006 - VERSION 1
+*
+* FORTRAN COMPILER IO SELECTOR
+*
+* WHEN THE COMPILER IS STARTED, REGISTER A SPECIFIES THE DEVICES
+* TO BE USED FOR SOURCE INPUT, OBJECT OUTPUT AND FOR LISTING OUTPUT.
+* THE IOS SELECTOR HONORS THIS SELECTION BY ACTIVATING THE SELECTED
+* DEVICES FOR THESE TASKS.
+*
+* THE FOLOWING OPTIONS ARE SUPPORTED:
+*
+* A[ 8-10] SOURCE INPUT DEVICE (1=TTY 2=CR 3=HSR 4=MAGTAPE-UNIT 1)
+* A[11-13] LISTING DEVICE (0=SUP 1=TTY 2=LP 4=MAGTAPE-UNIT 2)
+* A[14-16] OBJECT OUTPUT DEVICE (0=SUP 1=PTP 2=TTY 4=MAGTAPE-UNIT 2)
+* THE LISTED DEVICE ALLOCATION IS SET BY F4IOS
+* THIS VERSION OF F4IOS DOES NOT, WITHOUT MODIFICATION, SUPPORT OTHER
+* DEVICES FOR THE SPECIFIED TASKS.
+* THIS ALSO MEANS THAT TAPE UNIT 2 CAN EITHER BE USED FOR
+* OBJECT OUTPUT OR FOR LISTING OUTPUT
+*
+* IN CASE NO DEVICE SELECTION IS SPECIFIED IN REGISTER A, A DEFAULT
+* SELECTION IS MADE BY F4IOS:
+* - SOURCE INPUT 3=HSR
+* - LISTING OUTPUT 1=TTY
+* - OBJECT OUTPUT 1=PTP
+*
+* F4IOS LINKS, TO SUPPORT THE SPECIFIED IO, THE DRIVERS FOR THESE DEVICES.
+* HOWEVER, IF FOR INSTANCE NO MAGTAPE IS AVAILABLE IN A PARTICULAR
+* INSTALLATION, THE MAGTAPE DRIVER CAN BE REPLACED BY A DUMMY DRIVER.
+* THE COMPILER FOOTPRINT IN MEMORY BECOMES SMALLER THEN. DO NOT LINK
+* THE MAGTAPE DRIVER IN THAT CASE. THE F4$DUM MODULE RESOLVES THE CALLS
+* TO THE MAGTAPE DRIVER AND MUST BE THAT LAST MODULE TO BE LINKED.
+*
+* HONEYWELL X16 16 BIT COMPUTER SOFTWARE
+*
+* PROGRAM LENGTH: 415 WORDS
+*
+* THIS SOURCE IS RECREATED FROM THE EXISTING SLST FILE:
+* - SLST-FRTN.IMG (WHICH ORIGINATES FROM HONEYWELL)
+*
+* THE SOURCE IS RECREATED BY: THEO ENGEL (THEO.ENGEL@HETNET.NL)
+*
+* SUBR F4$INT,F4IN IO INITIALISATION ROUTINE
+* SUBR F4$IN,F4SI GENERAL SOURCE INPUT ROUTINE
+* SUBR F4$OUT,F4OO GENERAL OBJECT OUTPUT ROUTINE
+* SUBR F4$SYM,F4LO GENERAL LISTING OUTPUT ROUTINE
+* SUBR F4$END,F4EN END COMPILATION
+*
+* SUBR F4$DUI,IL1 DUMMY SOURCE INPUT DRIVER
+* SUBR F4$DUO,OL4 DUMMY OBJECT OUTPUT DRIVER
+* SUBR F4$DUS,LL9 DUMMY LISTING OUTPUT DRIVER
+*
+ SUBR F4$INT,F4IN
+ SUBR F4$IN,F4SI
+ SUBR F4$OUT,F4OO
+ SUBR F4$SYM,F4LO
+ SUBR F4$END,F4EN
+*
+ SUBR F4$DUI,IL1
+ SUBR F4$DUO,OL4
+ SUBR F4$DUS,LL9
+ REL
+*
+*******************************************************************
+* F4$INT -- INIT COMPILER DATA POOL AND STORE IO DEVICE SELECTION *
+*******************************************************************
+*
+F4IN DAC *-*
+ JST SDEV SET THE SELECTED DEVICES
+ JST PUTR PUNCH LEADER IN CASE PTP IS OBJECT DEVICE
+ CALL F4$INI SET THE SIZE OF THE DATA POOL
+ CRA
+ STA SCNT SOURCE INPUT RECORD COUNTER/LINENUMBER = 0
+ IRS INFL SET 1ST-TIME-CALL FLAG FOR LISTING DRIVER
+ JMP* F4IN
+*
+**************************************
+* GENERAL SOURCE INPUT ROUTINE *
+* CALLING SEQUENCE: *
+* CALL F4$IN *
+* DAC SOURCEBUFFER *
+**************************************
+*
+F4SI DAC *-* SOURCE INPUT DRIVER
+ LDA* F4SI GET SOURCE BUFFER ADDRESS
+ STA IB1 AND STORE
+ STA IB2
+ STA IB3
+ STA IB4
+ STA IB5
+ STA IB6
+IL6 LDA DSRC LOAD SELECTED SOURCE DEVICE
+ JST SWCH JMP SWITCH
+ JMP IL1 0 NON
+ JMP IL2 1 TTY
+ JMP IL3 2 CR
+ JMP IL4 3 HSR
+ JMP IL5 4 MAG TAPE
+ JMP IL1 5 NON
+ JMP IL1 6 NON
+* DUMMY SOURCE INPUT DEVICE DRIVER: SELECT PROPER DEVICE
+IL1 LDA MO5 7 NON =-5 MESSAGE LENGTH, 5 WORDS LONG
+ JST PRBF
+ DAC MDEV MESSAGE: DEVICE? (NO DRIVER FOR REQUESTED DEVICE)
+ JST STOP SET DEFAULT OR NEW DEVICE SELECTION
+ JMP IL6
+*
+IL2 CALL I$AA TTY = SOURCE INPUT DEVICE
+IB1 DAC *-* SOURCE BUFFER ADDRESS
+ JMP IL2 EOM/EOF RETURN
+ JMP IL7 NORMAL RETURN
+IL3 CALL I$CA CR = SOURCE INPUT DEVICE
+IB2 DAC *-* SOURCE BUFFER ADDRESS
+ JMP IL3 EOM/EOF RETURN
+ JMP IL7 NORMAL RETURN
+IL4 CALL I$PA HSR = SOURCE INPUT DEVICE
+IB3 DAC *-* SOURCE BUFFER ADDRESS
+ JMP IL4
+ JMP IL7
+IL5 CALL I$MA MT = SOURCE INPUT DEVICE
+IB4 DAC *-* SOURCE BUFFER ADDRESS
+ OCT 50 BUFFER LENGTH (WORDS)
+ OCT 1 TAPE UNIT 1 = SOURCE DECK
+ JMP ERR0 RECORD NOT READABLE RETURN
+ JMP ERR1 END OF TAPE RETURN
+ JMP IL5 END OF FILE RETURN; READ NEXT FILE
+ CALL C$6TO8 NORMAL RETURN; CONVERT RECORD TO ASCII
+IB5 DAC *-* SOURCE BUFFER ADDRESS
+ OCT 50 BUFFER LENGTH
+IL7 LDA SCNT SOURCE RECORD COUNTER
+ ADD N1 =1
+ SSP
+ STA SCNT SOURCE RECORD COUNTER
+ IRS F4SI SET RETURN ADDRESS
+ JMP* F4SI
+*
+**************************************
+* GENERAL OBJECT OUTPUT ROUTINE *
+* CALLING SEQUENCE: *
+* A = OBJECT BUFFER ADDRESS *
+* X = - BUFFER LENGTH (WORDS) *
+* CALL F4$OUT *
+**************************************
+*
+F4OO DAC *-* OBJECT OUTPUT DRIVER
+ STA OSRC EXTERNAL OBJECT BUFFER ADDRESS
+ LDA 0 - BUFFER LENGTH (WORDS)
+ TCA
+ STA OBFL + BUFFER LENGTH (WORDS)
+ STA MTBL
+ ADD OPTR POINTER TO OUTPUT BUFFER
+ ADD IFLG INDEX FLAG
+ STA ODES INDEXED DESTINATION
+OL1 LDA* OSRC MOVE OBJECT TO INTERNAL OUTPUT BUFFER
+ STA* ODES
+ IRS 0
+ JMP OL1
+OL6 LDA DOBJ
+ JST SWCH JMP SWITCH
+ JMP* F4OO 0 SUPPRESS OBJECT OUTPUT
+ JMP OL2 1 PTP
+ JMP OL3 2 TTY
+ JMP OL4 3 NON
+ JMP OL5 4 MAG TAPE
+ JMP OL4 5 NON
+ JMP OL4 6 NON
+* DUMMY OBJECT OUTPUT DEVICE DRIVER: SELECT PROPER DEVICE
+OL4 LDA MO5 7 NON =-5
+ JST PRBF
+ DAC MDEV MESSAGE: DEVICE?
+ JST STOP SET DEFAULT OR NEW DEVICE SELECTION
+ JST PUTR PUNCH TRAILER IN CASE PTP IS SELECTED
+ JMP OL6
+*
+OL2 CALL O$PB PTP = OBJECT OUTPUT DEVICE
+ DAC OBUF OUTPUT BUFFER ADDRESS
+ JMP* F4OO EXIT
+OL3 CALL O$AB TTY = OBJECT OUTPUT DEVICE
+ DAC OBUF OUTPUT BUFFER ADDRESS
+ JMP* F4OO EXIT
+OL5 CALL O$MB MAG TAPE = OBJECT OUTPUT DEVICE
+ DAC OBUF+1 BUFFER ADDRESS
+MTBL OCT 0 BUFFER LENGTH (WORDS)
+ OCT 2 TAPE UNIT 2 = OBJECT DECK
+ JMP ERR1 END OF TAPE RETURN
+ JMP* F4OO EXIT
+*
+**************************************
+* GENERAL LISTING OUTPUT ROUTINE *
+* CALLING SEQUENCE: *
+* CALL F4$SYM *
+* DAC LINEBUFFER *
+**************************************
+*
+F4LO DAC *-* LISTING OUTPUT DRIVER
+ LDA SPSP <SPACE><SPACE>
+ STA OBUF SET LINENUMBER FIELD
+ STA OBUF+1 (6 CHARS) TO SPACES
+ STA OBUF+2
+ LDA* F4LO EXTERNAL BUFFER ADDRESS
+ ADD ILPB +INDEX / LENGTH
+ STA OSRC INDEXED EXTERNAL BUFFER ADDRESS
+ LDA MO50 ='-50
+ STA 0 X = INDEX INTO THE LINE BUFFER
+LL1 LDA* OSRC MOVE LINE TO INTERNAL DRIVER BUFFER
+ STA LBUF,1
+ IRS 0
+ JMP LL1
+LL10 LDA INFL NON-ZERO WITH 1ST CALL
+ SNZ
+ JMP LL2 EQUAL 0
+* 1ST CALL OF LISTING DRIVER
+ LDA* F4LO EXTERNAL BUFFER ADDRESS
+ ERA IB6 EQUAL TO SOURCE BUFFER ADDRESS??
+ SZE
+ JMP LEX NOT EQUAL; EXIT
+ LDA DLST YES; GET REQUIRED LISTING DEVICE
+ ERA N2 EQUAL 2 ? (LP)
+ SZE
+ JMP LL2 NOT LP
+ CALL O$LH YES, LP. INIT THE HEADER
+ DAC OBUF
+LL2 LDA* F4LO EXTERNAL BUFFER ADDRESS
+ ERA IB6 EQUAL TO SOURCE BUFFER ADDRESS??
+ SZE
+ JMP LL3 NO
+ LDA TPTR YES, EQUAL TO SOURCE BUFFER
+ STA TEMP TEMP = PTR TO DEC CONV TAB
+ LDA SCNT GET SOURCE LINE NUMBER
+ STA NUMB LINENUMBER TO PRINT
+* WITH ZERO BEING TRUE, LEADING ZERO'S OF THE LINENUMBER ARE SUPPRESSED
+ IRS ZERO LEADING ZERO FLAG IS TRUE (SET TO FALSE WITH 1ST NONZERO)
+ JST CDIG DIGIT 1
+ JST CDIG DIGIT 2
+ JST CDIG DIGIT 3
+ JST CDIG DIGIT 4
+ JST CDIG DIGIT 5
+LL3 LDA DLST WHICH DRIVER TO OUTPUT LISTING?
+ JST SWCH JMP SWITCH
+ JMP LL4 0 SUPPRESS LISTING
+ JMP LL5 1 TTY
+ JMP LL6 2 LP
+ JMP LL9 3 NON
+ JMP LL8 4 MAG TAPE
+ JMP LL9 5 NON
+ JMP LL9 6 NON
+* DUMMY LISTING OUTPUT DEVICE DRIVER: SELECT PROPER DEVICE
+LL9 LDA MO5 7 NON =-5
+ JST PRBF
+ DAC MDEV MESSAGE: DEVICE?
+ JST STOP SET DEFAULT OR NEW DEVICE SELECTION
+ JMP LL10
+*
+LL5 LDA O43 TTY = LISTING OUTPUT DEVICE (35 WORDS)
+LL13 STA 0 REMOVE TRAILING BLANKS
+ LDA OBUF,1
+ ERA SPSP
+ SZE
+ JMP LL11
+ LDA 0
+ SNZ
+ JMP LL12
+ SUB N1
+ JMP LL13
+LL11 IRS 0
+ LDA 0
+ TCA A = - LENGTH (IN WORDS) OF THE LINE TO PRINT
+LL12 JST PRBF PRINT THE LINE
+ DAC OBUF
+ JMP LL4
+LL6 CALL O$LA LP = LISTING OUTPUT DEVICE
+ DAC OBUF OUTPUT BUFFER (60 WORDS)
+ JMP LL4
+LL8 CALL C$8TO6 MAG TAPE = LISTING OUTPUT DEVICE (UNIT 2)
+ DAC OBUF OUTPUT BUFFER
+ OCT 50 BUFFER LENGTH (WORDS)
+ CALL O$MA
+ DAC OBUF OUTPUT BUFFER
+ OCT 50 BUFFER LENGTH (WORDS)
+ OCT 2 TAPE UNIT 2 = OBJECT DECK
+ JMP ERR1 EOT RETURN
+LL4 CRA NORMAL RETURN
+ STA INFL RESET 1ST-TIME-CALL FLAG OF THE LISTING DRIVER
+LEX IRS F4LO SET RETURN ADDRESS
+ JMP* F4LO
+*
+* CONVERT 1 DIGIT FOR PRINTING A 5 DIGIT LINENUMBER
+* USED BY THE OUTPUT LISTING DRIVER
+CDIG DAC *-*
+ CRA
+ STA 0 X=0 (COUNT=0)
+ LDA NUMB NUMBER (OR RESIDUAL OF NUMBER) BEING CONVERTED
+CV1 SUB* TEMP TEMP = POINTER INTO CONVERSION TABLE
+ SPL
+ JMP CV2 NEGATIVE
+ STA NUMB STILL POSITIVE
+ IRS 0 COUNT + 1
+ JMP CV1
+CV2 IRS TEMP TEMP = POINTER TO NEXT ITEM IN CONVERSION TABLE
+ LDA TPTR POINTER TO TABLE
+ SUB TEMP MINUS THE CURRENT POINTER TO THE TABLE
+ STA T1
+ ADD N1 +1
+ TCA
+ LGR 1 = INDEX IN BUFFER
+ IMA 0 A = COUNT
+ SNZ
+ JMP CV3 COUNT = 0 => DIGIT WOULD BE 0
+CV4 ADD O20 ='20 (TO MAKE ASCII DIGIT OF SPACE)
+CV5 ALR '10
+ IRS T1
+ JMP CV5
+ ADD OBUF,1
+ STA OBUF,1
+ CRA
+ STA ZERO RESET THE LEADING ZERO FLAG
+ JMP* CDIG
+CV3 LDA ZERO NONZERO IF STILL LEADING ZERO'S
+ SZE
+ JMP* CDIG NONZERO, SO STILL A LEADING ZERO
+ JMP CV4 ZERO, SO NOT A LEADING ZERO, SO OUTPUT
+*
+**************************************
+* STOP COMPILATION: F4$END *
+**************************************
+*
+F4EN DAC *-*
+ LDA DOBJ OBJECT DEVICE?
+ JST PUTR PUNCH TRAILER IN CASE OF PTP
+ LDA DOBJ
+ ERA N1 PTP?
+ SNZ
+ OCP '102 YES; PTP OFF
+ ERA N5 OBJECT DEVICE MAGTAPE?
+ SNZ
+ JMP LE1 YES
+ LDA DLST LISTING DEVICE MAGTAPE?
+ ERA N4
+ SZE
+ JMP LE2 NO
+LE1 CALL O$ME WRITE EOF ON UNIT 2 (OBJECT OR LISTING DEVICE)
+ OCT 2 UNIT 2
+LE2 LDA MO6 ='-6
+ JST PRBF PRINT EOJ MESSGE
+ DAC MEOJ
+ JST STOP STOP
+ LDA DEFT
+ JMP* F4EN AND RESTART
+MEOJ OCT 106612 END OF JOB MESSAGE
+ BCI 1,EN
+ BCI 1,D
+ BCI 1,OF
+ BCI 1, J
+ BCI 1,OB
+*
+**************************************
+* STOP AND (RE)LOAD DEVICE SELECTION *
+**************************************
+* CALLED BY SOURCE, OBJECT AND LISTING (DUMMY) DRIVERS OF F4-IOS
+* CALLED BY F4$END (WHICH IS ALSO PART OF F4-IOS)
+*
+STOP DAC *-*
+ LDA DEFT LOAD DEFAULT DEVICE SETTINGS
+ HLT STOP AND POSSIBLY ADAPT THE SETTING
+ JST SDEV SET THE NEW DEVICE SELECTION
+ JMP* STOP
+*
+**************************************************************
+* SAVE DEVICE SELECTION AS DEFINED DURING COMPILER (RE)START *
+**************************************************************
+* DEVICE SELECTION AS SPECIFIED IN REG-A (SOURCE, LIST, OBJECT), OR DEFAULT
+*
+SDEV DAC *-* SET SELECTED DEVICES
+ SZE
+ STA DEFT STORE REQUESTED DEVICES
+ LDA DEFT LOAD DEFAULT IF NOTHING SPECIFIED,
+ LRL 6
+ ANA M7
+ STA DSRC SOURCE DEVICE
+ CRA
+ LLL 3
+ STA DLST LISTING DEVICE
+ CRA
+ LLL 3
+ STA DOBJ OBJECT DEVICE
+ JMP* SDEV
+*
+******************************************************************
+* PUNCH LEADER/TRAILER IN CASE PTP IS THE SELECTED OBJECT DEVICE *
+******************************************************************
+* A[14-16] = SELECTED OBJECT DEVICE
+*
+PUTR DAC *-*
+ ERA N1 =1 PUNCHER SELECTED?
+ SNZ
+ CALL O$PLDR YES; PUNCH LEADER/TRAILER
+ JMP* PUTR
+*
+**************************************
+* PRINT MESSAGE FROM BUFFER ON TTY *
+**************************************
+* CALLING SEQUENCE:
+* JST PRBF A = - MESSAGE LENGTH IN WORDS
+* DAC MESSAGE
+*
+PRBF DAC *-* PRINT BUFFER
+ STA 0 X = A = - BUFFER LENGTH
+ LDA* PRBF BUFFER ADDRESS
+ IRS PRBF SET RETURN ADDRESS
+ STA BA STORE BUFFER ADDRESS
+ SKS '104 TTY READY?
+ JMP *-1
+ OCP '104 SET OUTPUT MODE
+ LDA CRLF
+ JST PRA PRINT 2 CHARS IN A
+ LDA 0
+ SNZ
+ JMP* PRBF
+P1 LDA* BA GET 2 CHARS
+ JST PRA PRINT 2 CHARS IN A
+ IRS BA
+ IRS 0
+ JMP P1
+ JMP* PRBF
+*
+**************************************
+* PRINT 2 CHARS FROM REG-A ON TTY *
+**************************************
+*
+PRA DAC *-*
+ LRL '10
+ OTA 4
+ JMP *-1
+ LLL '10
+ OTA 4
+ JMP *-1
+ JMP* PRA
+*
+**************************************
+* SWITCH VIA JUMP-TABLE *
+**************************************
+* CALLING SEQUENCE:
+* LDA INDEX INTO JUMP-TABLE
+* JST SWCH
+* JMP -- JUMP-TABLE ENTRY 0 (INDEX 0)
+* JMP -- JUMP-TABLE ENTRY 1 (INDEX 1)
+* ETC
+*
+SWCH DAC *-* SWITCH
+ ADD SWCH
+ STA SWCH
+ JMP* SWCH
+*
+**************************************
+* ERROR HANDLING ROUTINES *
+**************************************
+*
+STRT EQU '1000 COMPILER START ADDRESS
+ERR0 LDA MO2 =-2
+ JST PRBF
+ DAC MUR MESSAGE: UR (RECORD UNREADABLE)
+ JMP ERR2
+ERR1 LDA MO3 =-3
+ JST PRBF
+ DAC MEOT MESSAGE: EOT (END OF TAPE)
+ERR2 JST STOP
+ LDA DEFT LOAD DEVICE SETTINGS (REG-A)
+ JMP STRT RESTART COMPILATION
+*
+**************************************
+* F4-IOS DATA AREA *
+**************************************
+*
+DEFT OCT 311 DEFAULT SELECTION OF IO DEVICES (I 3=HSR; L 1=TTY; O 1=PTP)
+* DECIMAL CONVERION TABLE (USER FOR PRINTING NUMBERS)
+DTAB OCT 23420 =10000
+ OCT 1750 =1000
+ OCT 144 =100
+ OCT 12 =10
+ OCT 1 =1
+DSRC OCT 0 SOURCE INPUT DEVICE AS SPECIFIED DURING START
+DLST OCT 0 LISTING DEVICE AS SPECIFIED DURING START
+DOBJ OCT 0 OBJECT OUTPUT DEVICE AS SPECIFIED DURING START
+IB6 OCT 0 SOURCE BUFFER ADDRESS
+SCNT OCT 0 SOURCE RECORD COUNTER
+INFL OCT 0 FLAG LISTING DRIVER (NONZERO WITH 1ST-TIME-CALL)
+OSRC OCT 0 POINTER TO EXTERNAL OBJECT BUFFER
+BA EQU * BUFFER ADDRESS
+TEMP EQU * TEMP POINTER TO DECIMAL CONVERSION TABLE
+ODES OCT 0 INDEXED POINTER TO INTERNAL OBJECT BUFFER
+NUMB OCT 0 TEMP STORAGE FOR LINENUMBER TO CONVERT/PRINT
+ZERO OCT 0 SET TO 0 WITH 1ST NONZERO DIGIT IN LINENUMBER
+T1 OCT 0
+OPTR DAC OBUF POINTER TO OUTPUT BUFFER
+TPTR DAC DTAB POINTER TO DECIMAL CONVERSION TABLE
+*
+OBFL EQU * OUTPUT BUFFER LENGTH FOR BINARY OUTPUT (WORDS)
+OBUF OCT 4 OUTPUT BUFFER (60 WORDS; MUST NOT EXCEED 60 WORDS)
+ OCT 300
+ OCT 0
+ OCT 2
+ OCT 302
+ BCI 3,
+ BCI 3,EOB
+ BCI 3,000300
+ BCI 1,
+ BCI 3,000000
+ BCI 1,
+ BCI 3,000002
+ BCI 3,
+ BCI 3,
+ BCI 3,
+ BCI 3,
+ BCI 3,
+ BCI 3,
+ BCI 3,
+LBUF BCI 3, END OF LISTING BUFFER
+ BCI 3,
+ BCI 3,
+ BCI 3,
+ BCI 3,
+ BCI 2,
+*
+CRLF EQU *
+* MESSAGE: DRIVER? (NO DEVICE DRIVER FOR REQUESTED DEVICE) 5 WORDS LONG
+MDEV OCT 106612 MESSAGE: DEVICE?
+ BCI 1,DE
+ BCI 1,VI
+ BCI 1,CE
+ BCI 1,?
+*
+MEOT OCT 106612 MESSAGE: EOT (END OF TAPE)
+ BCI 1,EO
+ BCI 1,T
+MUR OCT 106612 MESSAGE: UR (UNREADABLE RECORD)
+ BCI 1,UR
+MO3 OCT 177775
+MO2 OCT 177776
+M7 OCT 7
+MO6 OCT 177772
+N4 OCT 4
+N5 OCT 5
+O20 OCT 20
+O43 OCT 43
+N2 OCT 2
+MO50 OCT 177730 ='-50
+ILPB OCT 40050 INDEX LISTING BUFFER
+SPSP OCT 120240 <SPACE><SPACE>
+IFLG OCT 40001 INDEX FLAG
+MO5 OCT 177773
+N1 OCT 1
+ END