/TSS/8 BASIC EXECUTE OVERLAY (BASEXC) VERSION 3 / /REVISION: 21-MAY-71 GWB/PJK / /COPYRIGHT 1970, 1971 DIGITAL EQUIPMENT CORPORATION / MAYNARD, MASSACHUSETTS / / /THIS PROGRAMS READS THE PROGRAM INTO CORE FROM FILE #0, /AND SETS UP STUFF SO THE IMAGE IN CORE AND ON FILE #1 /IS ACCEPTABLE TO THE INTERPRETER. THEN IT EXECUTES THE /PROGRAM BY CALLING THE INTERPRETER. EXT=6611 WFILE=6605 RFILE=6603 ENDINT=3 SYSERR=5 SYSIOE=6 SYSPRG=7 PRGNM=354 LCSAV=352 /PAGE ZERO VALUES TO PASS ON *30 START, 0 /START OF PROGRAM STORAGE LLIMIT, 0 /LOWER LIMIT OF STACK HLIMIT, 0 /UPPER LIMIT OF STACK DATBND, 0 /LOWER BOUND OF NUMERIC DATA LINE, 0 /LINE NUMBER DSTBND, 0 /LOWER BOUND OF STRING DATA LIST / / LOCATIONS IN BASIN NEEDED TO DO CHAIN / LC=45 CVTFIL=4243 DSKNO=5555 DSKWC=5556 FILNAM=5557 *400 ERROR=JMS I SYSERR OPEN=6601 /TSS/8 IOT PCNT=14 /-LENGTH OF PROGRAM TEM=177 /TEMP STORE FOR DSKIO /ENTRY TO RELOADER TAD I TO /IS THIS CHAIN SNA CLA JMP EXCCHN /YES JMS DSKIO /FIRST READ PAGE ZERO STUFF /MOVE VARIOUS STUFF TO PAGE ZERO EXC2, TAD I PBUF1 DCA PCNT /SET UP VALUE FOR WRITE TAD I FR1 DCA I TO1 ISZ FR1 ISZ TO1 ISZ CT1 JMP .-5 TAD LINE DCA ENDINT TAD PCNT /GET LENGTH OF PROGRAM DCA DSKCNT TAD BUFPTR DCA DSKBUF /READ WHOLE PROGRAM INTO CORE FOR COPY JMS DSKIO TAD HLIMIT DCA DSKCNT CLA CMA TAD HLIMIT DCA DSKBUF JMS DSKIO /READ CONSTANTS AND DATA TAD KWFILE DCA DSKRW /CHANGE TO WRITE FILE #1 CLA IAC DCA DSKFNR /FILE NUMBER 1 DCA DSKADR DCA DSKADH TAD PCNT DCA DSKCNT /WRITE THE WHOLE FILE TAD BUFPTR DCA DSKBUF JMS DSKIO TAD K6 /CALL INTERPRETER NEXT JMP I SYSPRG K6, 6 PBUF1, BUFFER+4 FR1, BUFFER+START-10 TO1, START CT1, -6 KWFILE, WFILE /DISK I/O ROUTINE FOR EXECUTE DSKIO, 0 TAD DSKCNT CIA TAD DSKADR /UPDATE ADDRESS FOR NEXT TIME DCA TEM TAD DSKBLK DSKRW, RFILE /GETS CHANGED TO A WFILE LATER TAD DSKERR CLL RTR /CHECK FOR EOF ERROR SNA CLA SNL JMP DSKIO1 /NOT EOF DCA EXTCNT /COMPUTE LENGTH TO EXTEND FILE TAD DSKCNT DSKIO2, TAD K400 ISZ EXTCNT SZL JMP DSKIO2 /CONTINUE UNTIL POSITIVE CLA TAD EXTBLK EXT SPA SNA JMP .+3 CLA TAD K7400 /HACK..FORCE DISK FULL ERROR JMS I SYSIOE /TEST FOR EXTEND ERROR TAD TEM TAD DSKCNT /FIX DSKCNT AFTER EOF ERROR ON WRITE DCA DSKADR JMP DSKRW-1 /OK--CONTINUE I/O DSKIO1, TAD DSKERR JMS I SYSIOE /TEST FOR ERROR TAD TEM /THIS ASSUMES CORRECTLY THAT THE FILE DCA DSKADR /NEVER EXCEEDS 16 SEGMENTS. JMP I DSKIO /ALL OK DSKBLK, .+1 DSKADH, 0 DSKFNR, 0 /ALL SET FOR FIRST READ DSKCNT, -30 /30 WORDS INTO PAGE DSKBUF, BUFFER-1 /LOCATIONS 10-37 DSKADR, 0 /FROM FRONT OF FILE DSKERR, 0 EXTBLK, .+1 1 EXTCNT, 0 BUFPTR, BUFFER-1 K7400, 7400 K400, 400 K3, 3 PBUF, BUFFER FROM, FILNAM TO, PRGNM CNT, -3 PLCSAV, LCSAV K40, 40 KM100, -100 K4040, 4040 PCVT, CVTFIL OPEACT, DSKWC OPENCB, DSKNO EXCCHN, JMS I PCVT /YES, GET FILE NAME MOVLP, TAD I FROM /SAVE NEW PROGRAM NAME AND K40 / IN TRUNCATED 6-BIT FORMAT SZA CLA TAD KM100 TAD K4040 TAD I FROM DCA I TO ISZ FROM ISZ TO ISZ CNT JMP MOVLP TAD LC /SAVE TTY COLUMN POSITION DCA I PLCSAV DCA I OPEACT /INDICATE CURRENT USER'S ACCT DCA I OPENCB /INDICATE FILE #0 TAD OPENCB /OPEN THE NEW PROGRAM FILE OPEN SZA CLA /ERROR? ERROR /YES 7 /*** PROGRAM NOT FOUND *** JMS DSKIO /NO, READ FIRST 30 WORDS TAD K3 /IS THIS .BAC FILE? TAD I PBUF SNA CLA JMP I PEXC2 /YES TAD BUFFER /NO, IS THIS BAD FILE SPA SNA CLA ERROR /YES 51 /*** CHAIN TO BAD FILE *** CLA STL RTL /NO, CALL COMPILER JMP I SYSPRG PEXC2, EXC2 BUFFER, ZBLOCK 32 /BUFFER TO DO COPY IN $