AUTOCODER RUN THRU OUTPUT JOB CONDENSED DISK LOAD FROM CARDS CTL 2 1 S D * INITIALIZATION * INIT CS 99 SW 87,92 SW 97,WRDSEP SW DSKBUF&2000,BLANKS MLC WRDSEP,MAIN2&7 MLC WRDSEP,SPCHA2&7 MLC WRDSEP,READ8&7 MLC WRDSEP,INIT4&7 MZ *-6,ALTBL LCA GMARK,81 R READ HEADER CARD SW 1,2 C 4,@000@ BU INITER ERROR - 1ST CARD SHOULD BE 000 WCP 30 WRITE HEADER MN 1,READX&7 SET UP THE I.D. CODE CHECK MLC 71,REALSC FIRST TRACK ADDRESS MLC 80,ENDSC LAST TRACK ADDRESS B READ1 GET FIRST CARD OF DUMP SBR X1,6 INIT4 BCE DISKW1,005, WORD-SEP SHOULD BE 1ST CHAR INITER WCP MSGER1 INITIALIZATION ERROR H B INIT TRY IT AGAIN SKIPN * MAIN TRANSFER LOOP * MAIN A @1@,X1 GET NEXT CHAR BWZ READ,0&X1,1 UNLESS WE NEED MORE MAIN2 BCE SPCHAR,0&X1, WORD-SEP -- SPECIAL HANDLING MAIN3 MA @001@,X2 B MAIN * * * SPCHAR MLC 15999&X1,0&X2 MOVE EVERYTHING SO FAR SPCHA1 B GETCHR SPCHA2 BCE WSEP,0&X1, DOUBLE WORD-SEP - ONE GETS ENTERED BCE ALTBLK,0&X1, BLANK MEANS ALT-BLANK BCE BLFILL,0&X1,B DO WE FILL BLANKS. BCE DISKW,0&X1,T NEW TRACK ADDRESS. B ERROR BLFILL MLC @000@,X3 BLANK FILL B GETCHR GET NEXT CHARACTER. MLC 0&X1,X3-2 B GETCHR MN 0&X1,X3-1 B GETCHR MN 0&X1,X3 MA X3,X2 MLC BLANKS-1&X3,0&X2 SPCHA7 B GETCHR SW 0&X1 B READ8 * GETCHR SBR GETCHX&3 A @1@,X1 BWZ READ1,0&X1,1 GETCHX B 0 * * * WSEP MLC WRDSEP,1&X2 WSEP1 MA @001@,X2 B SPCHA7 ALTBLK MLC ALTBL,1&X2 B WSEP1 * * * READ MLC 15999&X1,0&X2 DUMP CHARS SO FAR B READ1 READ A CARD READ8 BCE SPCHA1,0&X1, 1ST CHAR IS WORD-SEP - SP CASE B MAIN3 SKIPN * READ A CARD SUBROUTINE * READ1 SBR READX&3 CS 80 SW 2,5 R SBR X1,5 * CHECK SEQUENCE NUMBER MA @001@,SEQNO READ7 C 4,SEQNO BU SEQERR C SEQNO,@000@ BU READX MZ @-@,READX&7 SET FOR SEQ NOS. 16000, ... READX BCE 0,1, EXIT IF OK /D-CHAR IS CODE/ * SEQUENCE ERROR SEQERR WCP MSGER2 H MLC TSEQNO,SEQNO MLC TCODE,READX&7 MLC TCOL,X1 SBR X2,DSKBUF-1 R READ7 SKIPN * WRITE A TRACK ON THE DISK DISKW C X2,&.DSKBUF&1999. DOUBLE CHECK THE COUNT BU SYSERR BR IF ERROR- NONFATAL. ERRET MLC REALSC,DSKBUF-4 SD DSKBUF-10 SEEK IT BIN *-12,\ BIN DSKERR,Y * INSERT THE NEW ADDRESSES SBR X2,DSKBUF&2120-1 SBR X3,DSKBUF&2000-1 A @19@,SECADD MLC @19@,COUNT#2 DISKW6 SW 15901&X3 -99&X3 LCA 0&X3,0&X2 LCA SECADD CHAINED S @1@,COUNT BWZ DISKW7,COUNT,K END OF LOOP / 20 TIMES / S @1@,SECADD MZ @1@,SECADD MA @I0?@,X3 -100 MA @H9D@,X2 -106 B DISKW6 LOOP DISKW7 MLC @020@,DSKBUF-1 MLC REALSC CHAINED WDT DSKBUF-10 BIN *-12,\ BIN DSKERR,Y MLC @020@,DSKBUF-1 MLC REALSC WDC DSKBUF-10 BIN *-12,\ * IGNORE THE ERROR C REALSC,ENDSC BE EOJ CS DSKBUF&2119 CHAIN21 SW DSKBUF&2000 A @020@,REALSC DISKW1 MLC 4,TSEQNO MLC MLC X1,TCOL SBR X3,6 COUNTER FOR LOOP SBR X2,SECADD-5 DISKW2 B GETCHR MN 0&X1,0&X2 MA @001@,X2 S @1@,X3 BCE DISKW4,X3,? B DISKW2 LOOP DISKW4 SBR X2,DSKBUF-1 B SPCHA7 * * * DSKERR WCP MSGER3 H *-3 * SYSERR LCA GM,DSKBUF&2120 IGNORE OVERFLOW. MLC REALSC,MSGR4A PUT ADR INTO MESSAGE. WCP MSGER4 B ERRET * ERROR WCP GM WCP MSGER5 TOP1 B GETCHR GET CHAR BCE SEP,0&X1,+ WORD SEP QM. B TOP1 LOOP IF NOT. SEP B GETCHR GET NEXT BCE DISKW,0&X1,T WIT FOR NEW TRACKADR. B TOP1 LOOP IF NOT YET FOUND. SKIPN EOJ WCP MSGEOJ VIAUAL DOUBLE-CHECK H *-3 WRDSEP DCW @ +@ ALTBL DCW #1 BLANKS DA 1X2000,C SEQNO DCW 000 TCOL DCW #3 MSGER1 DCW @BAD CARD DECK - RESTART POSSIBLE@,G MSGER2 DCW @SEQUENCE ERROR - RESTART AT SEQNO @ TCODE DCW #1 TSEQNO DCW #3,G MSGER3 DCW @DISK ERROR - FATAL@,G MSGER4 DCW @WATCH OUT FOR TRACK @ MSGR4A DCW #6,G GM EQU * MSGER5 DCW @HUH?@,G MSGEOJ DCW @EOJ - LAST TRACK ADDRESS WAS @ REALSC DCW 000000,G * ENDSC DCW #6 SECADD DCW 000000 LTORG* * ORG *&X00&90 DCW 0000000000 DSKBUF DA 1X2120,C,G 20 SECTORS & A A ASSES GMARK EQU * * * * END INIT