/UPDATE PART II /THIS SECTION UPDATES THE DIRECTORY AND DETERMINES /IF IT WILL OVERFLOW - LOADS THAT PART OF THE /PROGRAM THAT IS IN CORE, IE ADDRESSES < 6000 /IT ALSO DETERMINES WHETHER OR NOT REGISTER 0 IS AFFECTED /PAGE 14 *7000 JMP I ZZZ /START PROGRAM RUNNING ZZZ, BEG CONT, CLL CML CMA IAC TAD PSHC RAR DCA I TSZE /-NUMBER OF BLOCKS IN TAD LST2 /INITIAL WRITING MODE CMA IAC /GET DIREC TAD I LST1 IAC /C(AC) = SIZE OF NEW DIRECTORY DCA LST1 /ENTRY JMS I MGET /GET THE DIRECTORY 7767 /BLOCK NUMBER 11 7775 /3 BLOCKS TAD I NEXT /RETURN HERE WITH TAPE STOPPED TAD LST1 /THIS IS NEXT FREE ADDRESS TAD MAX /WILL THIS ENTRY OVERFLOW SMA CLA /THE DIRECTORY JMP ERRR /YES IT WILL - TYPE MESSAGE TAD I BDIR /NO IT WON'T TRANSFER NEW DCA I BHRE /DIRECTORY ENTRY, GET NEXT TAD I BHRE /FREE BLOCK NUMBER AND UPDATE TAD SIZE /FILE SIZE AND THEN DCA I BDIR /UPDATE NEXT FREE ADDRESS TAD M5 /WRITE IT ALL BACK ONTO DCA CNT6 /THE DIRECTORY TAD LST2 DCA CNT7 TAD I NEXT DCA LST1 CLA CMA TAD I DSZE DCA I DSZE /PAGE 15 TAD I CNT7 DCA I LST1 ISZ CNT7 ISZ LST1 ISZ CNT6 JMP .-5 TAD I CNT7 SNA JMP .+5 DCA I LST1 ISZ CNT7 ISZ LST1 JMP .-6 DCA I LST1 IAC TAD LST1 DCA I NEXT /DIRECTORY ENTRY TRANSFERRED TAD NEXT /SEARCH THE DIRECTORY FOR IAC /THIS NAME-IF IT IS DCA CNT6 /FOUND--OPERATOR ERROR TAD I DSZE DCA CNT7 XGO, TAD MMI3 DCA NEXT TAD LST2 DCA LST1 XTRY, TAD I LST1 /ARE THESE EQUAL CMA IAC TAD I CNT6 SZA CLA /NO - RESET POINTERS JMP STHS /YES ISZ LST1 ISZ CNT6 ISZ NEXT /IS IT THE THIRD? JMP XTRY /NO TAD TCN5 /YES - ALREADY ON FILE JMP ERRR+1 STHS, ISZ CNT6 ISZ NEXT JMP .-2 ISZ CNT6 ISZ CNT6 TAD I CNT6 ISZ CNT6 SZA CLA JMP .-3 ISZ CNT7 JMP XGO JMP I EXXT /PAGE 16 MMI3, 0-3 TCN5, TAB5 MGET, GET TSZE, TZE LST2, DTAB-5 LST1, LIST NEXT, 6003 /NEXT DIRECTORY LOCATION BDIR, 6002 /NEXT FREE TAPE BLOCK DSZE, 6001 /NUMBER OF PROGRAMS IN FILE MAX, 1201 /-UPPER DIRCTORY SIZE SIZE, 0 /NUMBER OF BLOCKS FOR NEW FILE M5, 0-5 /NUMBER FO FIXED TRANSFERS CNT6, 0 /TEMPORARY STORAGE CNT7, 0 BHRE, BHR1 /BLOCK ADDRESS OF NEW PROGRAM TBC4, TAB4 ERRR, TAD TBC4 JMS I MER1 JMP I MER2 MER1, PNT MER2, LOAD EXXT, 7200 PSHC, DLST /PAGE 17 *7200 JMS PUT /WRITE BLOCKS 11,12,13 7767 /IE. NEW DIRECTORY 7775 TAD I BH1 CMA IAC DCA I BK TAD RETN DCA I SPT CMA DCA PUT TAD DST DCA GET TAD TZE SNA CLA JMP XYZ SCAT, TAD I GET /LOAD PROGRAM FROM LOW CORE DCA I AD /TAPE CONTINUES MOVING ISZ GET /WITH ARGUMENTS BEING SUPPLIED TAD I GET DCA I BZ ISZ GET ISZ PUT JMP I TGO+1 JMP I TGO RET, ISZ TZE /RETURN HERE AFTER EACH SEGMENT JMP SCAT /MORE TO GO TAD D200 DTXA JMP XYZ /PAGE 18 RETN, RET TGO, SENTER MENTER D200, 200 TZE, 0 BH1, BHR1 DST, DLST XYZ, JMS GET 7777 /BLOCK NUMBER 1 7774 /4 BLOCKS JMS I DO JMS GET 7773 /BLOCK NUMBER 5 7775 /3 BLOCKS JMS I DO LOAD, JMS GET 7777 /BLOCK NUMBER 1 7770 /8 BLOCKS HLT /SYSTEM ERROR /PAGE 19 GET, 0 TAD GET /SUBROUTINE TO READ DCA PUT TAD TWO JMP .+3 PUT, 0 /SUBROUTINE TO WRITE TAD FOUR DCA I FNC TAD I PUT DCA I BK ISZ PUT TAD I PUT DCA I BZ ISZ PUT TAD RETR DCA I SPT TAD CORE DCA I AD JMP I XXY2 XXY2, SENTER XXXX, TAD D200 DTXA JMP I PUT RETR, XXXX TWO, 30 FOUR, 50 FNC, FUNCT /POINTER TO FUNCTION IN BOOTSTRAP #2 SPT, MOVING /POINTER TO RETURN IN B.S.#2 AD, ADDRS1 /POINTER TO CORE LOCATIONS BZ, BLOCK1 /POINTER TO NUMBER OF BLOCKS BK, BLK1 /POINTER TO BLOCK NUMBER CORE, 6000 /PAGE 20 TAB4, 0411 2205 /ERROR PRINT TABLES 0324 1722 3140 0625 1414 7240 0530 1124 0000 TAB5, 2410 1123 4016 0115 0540 1123 4001 1422 0501 0431 4017 1640 0611 1405 0000 DO, STRE /PAGE 21 *7400 STRE, 0 ISZ SWT7 JMP XY1 TAD CN17 DCA CNT8 TAD MU4 DCA CNT9 DCA ZERO TAD I CNT8 ISZ CNT8 SZA JMS DOTH ISZ ZERO ISZ CNT9 JMP .-6 JMP I STRE XY1, TAD MU3 JMP STRE+6 DOTH, 0 TAD BHR1 CMA IAC IAC DCA I X1 /BLOCK NUMBER TAD ZERO /CONVERT TO PAGE ADDRESS CLL RTL /IE. MULTIPLY BY 0200 RTL RTL RAL TAD FDG /CORE ADDRESS DCA I X2 CMA DCA I X3 /1 BLOCK TAD RET6 DCA I X4 /RETURN ADDRESS TAD MWRT DCA I XFN JMP I X5 /PAGE 22 X17, TAD D200A DTXA JMP I DOTH D200A, 200 SWT7, 7777 CN17, OVTB MU4, 0-4 MU3, 0-3 MWRT, 50 X1, BLK1 /POINTERS TO BOOTSTRAP#2 X2, ADDRS1 X3, BLOCK1 X4, MOVING X5, SENTER XFN, FUNCT RET6, X17 FDG, 6000 ZERO, 0 CNT8, 0 CNT9, 0 /PAGE 23 OVTB, 0 /THIS IS THE OVERFLOW LIST 0 /IE. FOR CORE LOCATIONS >6000 (<7577) 0 0 0 0 0 DLST, 0 /THIS IS THE TABLE USED DURING 0 /WRITING OF PROGRAM SECTIONS FROM 0 /CORE LOCATIONS <6000 0 /FORMAT OF THIS TABLE IS: 0 0 / CORE ADDRESS 0 /-NUMBER OF BLOCKS, ECT. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 /PAGE 24 CHAR, 0 /NEW DIRECTORY IS DEVELOPED HERE 0 0 BHR1, 0 SA, 0 DTAB, 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 $