/EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 1 1 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB 2 /COPYRIGHT 1975 3 /DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. 4 / 5 /THIS SECTION DEFINES THE HARDWARE CONFIGURATION ON WHICH INDIVIDUAL 6 /EDUSYSTEM 50 MONITORS ARE TO RUN. 7 /FOR EACH STATEMENT, THE COMMENT INDICATES THE POSSIBLE RESPONSES. 8 9 0000 CPU= 0 /1 IF CPU IS PDP-8; 0 IF CPU IS PDP-8/I; 10 /2 IF CPU IS PDP-8/E 11 12 0070 CORMEM= 70 /HIGHEST DATA FIELD SELECT. FOR 12K SYSTEM, 13 /RESPOND 20, FOR 16K SYSTEM, RESPOND 30, ETC. (70 MAX) 14 15 0000 PHONES= 0 /1 IF DC08 INCLUDES 689AG; 16 /0 IF IT DOES NOT OR IF TTY INTERFACING IS OTHER THAN DC08 17 18 0000 EAE= 0 /20 IF PROCESSOR INCLUDES EAE; 0 IF IT DOES NOT 19 20 0000 RF08= 0 /40 IF SYSTEM DISC IS DF32; 0 IF SYSTEM DISK IS RF08 21 22 0001 RS08= 1 /NUMBER OF DISCS ON THE SYSTEM, WHETHER DF/DS OR RF/RS. 23 /RESPOND WITH 1, 2, 3, OR 4. 24 25 0001 PUNCH= 1 /1 IF SYSTEM INCLUDES PUNCH; 0 IF IT DOES NOT 26 27 0000 TC01= 0 /1 IF SYSTEM INCLUDES DECTAPE(S); 0 IF IT DOES NOT 28 29 0000 RK05= 0 /NUMBER OF RK05 CARTRIDGE DISK DRIVES ON THE SYSTEM; 0 TO 4 30 31 0000 CDR= 0 /1 IF SYSTEM INCLUDES CARD READER; 0 IF IT DOES NOT 32 33 0001 LPT= 1 /1 IF SYSTEM INCLUDES LINE PRINTER; 0 IF NO LINE PRINTER 34 35 DECIMAL /MONITOR CAPACITY FOR THIS SYSTEM 36 37 0024 JOBMAX= 20 /NUMBER OF SIMULTANEOUS USERS (20 MAXIMUM) 38 39 /THE FOLLOWING ENTRIES DEFINE THE NUMBER OF TERMINALS 40 /ATTACHED TO THE SYSTEM, AND ALSO THE METHOD OF INTERFACING 41 42 0001 CONTTY= 1 /WE ALWAYS HAVE A CONSOLE (K00) 43 44 0023 DC08A= 19 /NUMBER OF TERMINALS INTERFACED VIA DC08A (PDP-8/I ONLY, 19 MAX.) 45 46 0000 DC08LO= 0 /LOWEST HARDWARE LINE NUMBER UTILIZED ON DC08A; USUALLY 0 47 48 0010 PT08= 8 /NUMBER OF TERMINALS INTERFACED VIA PT08 (PDP-8 & PDP-8/I ONLY) 49 50 0000 KL8= 0 /NUMBER OF ADDITIONAL TERMINALS INTERFACED VIA KL8 (PDP-8/E ONLY, 19 MAX.) /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 2 51 52 /PARAMETERS VERSION 8.24 (01-JANUARY-75) 53 / 54 / 55 / 56 / 57 /COPYRIGHT (C) 1975 58 /DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. 59 / 60 / 61 /THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY 62 /ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH 63 /THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS 64 /SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- 65 /VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON 66 /EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO 67 /THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE 68 /SOFTWARE SHALL REMAIN IN DEC. 69 / 70 /THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE 71 /WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A COM- 72 /MITMENT BY DIGITAL EQUIPMENT CORPORATION. 73 / 74 /DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR 75 /RELIABILITY OF ITS SOFTWARE ON EQUIPMENT WHICH IS NOT 76 /SUPPLIED BY DEC. /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 3 77 78 OCTAL 79 0000 PLT=0 80 IFNZRO CPU < IFNZRO DC08A > 81 IFNZRO 24-JOBMAX&4000 82 IFNZRO 23-KL8-PT08&4000 83 IFNZRO 24-DC08A&4000 84 IFZERO DC08A 85 IFNZRO DC08A < IFNZRO PHONES 86 0000 IFZERO PHONES > 87 0033 NULINE=DC08A+PT08+KL8 /EVERY TERMINAL EXCEPT THE CONSOLE 88 0005 SWDEX=5 /DISK TRACK OF THE FIRST USER SWAP TRACK 89 0005 STOMIN=5 /MINIMUM # FREE STORAGE BLOCK FOR NEWJOB 90 IFZERO RF08-40 < 91 IFZERO RS08-1 92 IFZERO RS08-2 93 IFZERO RS08-3 94 IFZERO RS08-4 95 DSKEXT=DSKSIZ-1> 96 0100 IFZERO RF08 98 0144 CLOCKR=144 /MILLISECONDS PER TICK 99 1130 TICMIN=1130 /600 TICKS PER MINUTE 100 0322 INCLK2=0322 /INITIAL CLOCK 101 7400 INCLK1=7400 102 0012 TICSPS=12 /NUMBER OF SYSTEM TICKS PER SECOND 103 0010 INIDEX=10 /INIT DISC EXTENSION 104 0030 TS8DEX=30 /FIELD 0 DISC EXTENSION*2^3 105 0000 ERPDEX=0 /ERP DISC EXTENSION*4 106 0000 ERPWC=0 /ERP WORD COUNT 107 0004 FIPDEX=4 /FIP DISC EXTENSION*4 108 0000 FIPWC=0 /FIP WORD COUNT 109 0000 SIDEX=ERPDEX /SI DISC EXTENSION*4 110 0000 SIWC=ERPWC /SI WORD COUNT 111 0002 LIBACT=2 /LIBRARY ACCOUNT # 112 4000 BRKINI=4000 /INITIAL USER BREAK MASK 113 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 4 114 115 /IOT DEFINITIONS 116 117 IFNZRO DC08A < /DC08A,DL8I IOTS 118 6401 TTIL=6401 /INCREMENT LINE REGISTER 119 6402 TTI=6402 /TELETYPE INPUT COMMAND 120 6404 TTO=6404 /TELETYPE OUTPUT COMMAND 121 6411 TTCL=6411 /CLEAR LINE REGISTER 122 6412 TTLL=6412 /LOAD LINE REGISTER, CLEAR AC 123 6414 TTRL=6414 /READ LINE REGISTER 124 6421 T1SKP=6421 /SKIP ON CLOCK FLAG 125 6422 T1OFF=6422 /TURN CLOCK OFF 126 6424 T1ON=6424 /TURN CLOCK ON 127 6461 TTIR=6461 /INCREMENT THE R REG. 128 6471 TTCR=6471 /CLEAR THE R REG. 129 6472 TTLR=6472 > /LOAD THE R REG. 130 /EXTENDED MEMORY 131 132 6201 CDF=6201 /CHANGE TO DATA FIELD 0 133 6202 CIF=6202 /CHANGE TO INSTRUCTION FIELD 0 134 6204 CINT=6204 /CLEAR USER IOT 135 136 6214 RDF=6214 /READ DATA FIELD 137 6224 RIF=6224 /READ INSTRUCTION FIELD 138 6234 RIB=6234 /READ INTERRUPT BUFFER 139 6244 RMF=6244 /RESTORE MEMORY FIELD 140 6254 SINT=6254 /SKIP ON USER IOT 141 6264 CUF=6264 /USER FLAG OFF 142 6274 SUF=6274 /USER FLAG ON 143 144 145 /EAE 146 7405 MUY=7405 /MULTIPLY 147 7407 DVI=7407 /DIVIDE 148 7411 NMI=7411 /NORMALIZE 149 7413 SHL=7413 /SHIFT ARITHMETIC LEFT 150 7415 ASR=7415 /ARITHMETIC SHIFT RIGHT 151 7417 LSR=7417 /LOGICAL SHIFT RIGHT 152 7421 MQL=7421 /LOAD MQ 153 7403 SCL=7403 /STEP COUNTER LOAD FROM MEMORY 154 7441 SCA=7441 /STEP COUNTER TO AC 155 7501 MQA=7501 /MQ TO AC 156 157 IFZERO CPU-2 < 158 159 DPSZ=7451 /MODE B ONLY - SKIP IF AC&MQ ARE CLEAR 160 SWBA=7447 /CHANGE MODE TO A 161 SWAB=7431 /CHANGE MODE TO B (ALSO DOES MQL) 162 ACS=7403 /AC(7:11) TO SC; AC CLEARED 163 SGT=6006 /SKIP ON GT FLAG 164 > 165 166 167 168 /LINE PRINTER IOTS 169 6661 LSF=6661 /SKIP ON CHAR FLAG SET 170 6662 LCF=6662 /CLEAR CHAR FLAG /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 5 171 6663 LSRP=6663 /SKIP ON NOT READY OR ON ERROR 172 6664 LLC=6664 /TRANSMIT CHAR TO PRINTER 173 6665 LSP=6665 /SET PROGRAM INTERRUPT; LP08/LE8 174 6666 LPC=6666 /TRANSMIT CHAR &CLEAR FLAG 175 6667 LCP=6667 /CLEAR PROGRAM INTERRUPT 176 6665 LIE=6665 /AC11 TO INTERRUPT ENABLE; LS08/LS8E 177 178 /CTY 179 180 6044 TPC=6044 /LOAD TELEPRINTER AND PRINT 181 182 /DISC (DF32) 183 184 6601 DCMA=6601 /CLEAR 185 6603 DMAR=6603 /READ 186 6605 DMAW=6605 /WRITE 187 6611 DCEA=6611 /CLEAR DISC EXTENDED ADDRESS 188 6615 DEAL=6615 /LOAD EXTENDED ADDRESS 189 6621 DFSE=6621 /SKIP ON ERROR 190 6622 DFSC=6622 /SKIP ON COMPLETION 191 6616 DEAC=6616 /READ EXTENDED ADDRESSES 192 193 /DISC (RF08) 194 195 6612 DSAC=6612 196 6614 DORS=6614 197 6615 DIML=6615 198 6616 DIMA=6616 199 6641 DCXA=6641 200 6643 DXAL=6643 201 202 /CARD READER IOT'S 203 6631 RCSF=6631 204 6632 RCRA=6632 205 6634 RCRB=6634 206 6635 RCNO=6635 /8E ONLY 207 6636 RCRC=6636 /8E ONLY 208 6637 RCNI=6637 /8E ONLY 209 6671 RCSD=6671 210 6672 RCSE=6672 211 6674 RCRD=6674 212 6675 RCSI=6675 /8E ONLY 213 6677 RCTF=6677 /8E ONLY 214 215 /RK05 IOT'S 216 217 IFZERO PHONES< 218 6741 DSKP= 6741 219 6742 DCLR= 6742 220 6743 DLAG= 6743 221 6744 DLCA= 6744 222 6745 DRST= 6745 223 6746 DLDC= 6746 224 6747 DMAINT= 6747 > 225 IFNZRO PHONES < 226 DSKP= 6751 227 DCLR= 6752 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 6 228 DLAG= 6753 229 DLCA= 6754 230 DRST= 6755 231 DLDC= 6756 232 DMAINT= 6757 > 233 234 /DECTAPE 235 236 6761 DTRA=6761 237 6762 DTCA=6762 238 6764 DTXA=6764 239 6771 DTSF=6771 240 6772 DTRB=6772 241 6774 DTLB=6774 242 243 244 IFZERO CPU < 245 /KW8I REAL TIME CLOCK 246 247 6137 CECI=6137 /CLEAR AND ENABLE CLOCK AND INTERRUPT 248 6133 CSCF=6133 /SKIP AND CLEAR FLAG IF FLAG 249 > 250 IFZERO CPU-1 < 251 CECI=6315 /CLOCK ENABLE 252 CSCF=6301 /SKIP ON CLOCK FLAG 253 CCF=6302 /CLEAR CLOCK FLAG, CLEAR ENABLE AND CLEAR BUFFER 254 CLB=6304 > /LOAD BUFFER FROM AC 255 256 IFZERO CPU-2 < 257 CECI=6131 /CLOCK ENABLE 258 CSCF=6133 /SKIP AND CLEAR FLAG IF FLAG 259 260 /POWER FAIL IOT 261 262 SPL=6102 /SKIP IF POWER LOW 263 264 / 8/E PROCESSOR IOT 265 SRQ=6003 /SKIP ON INTERRUPT REQUEST 266 GTF=6004 /LINK TO AC0, GT FLAG TO AC1 267 RTF=6005 /AC0 TO LINK, AC1 TO GT FLAG 268 CAF=6007 > /CLEAR ALL FLAGS 269 270 IFZERO CPU-4 < 271 CLLE=6135 /AC11 TO INTERRUPT ENABLE FOR CLOCK 272 CLCL=6136 /CLEAR CLOCK FLAG 273 CLSK=6137 /SKIP ON CLOCK FLAG 274 SPL=6102 /SKIP POWER LOW 275 CAL=6133 > /CLEAR AC LOW FLAG 276 277 IFNZRO DC08A < 278 279 /689AG 280 6701 SRF=6701 /SKIP IF RING FLAG 281 6711 SCF=6711 /SKIP IF CARRIER FLAG 282 6742 DFCRF=6742 /CLEAR RING FLAG 283 6721 CTG=6721 /CLEAR GROUP COUNTER 284 6702 RRS=6702 /READ RING STATUS /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 7 285 6731 ITG=6731 /INCREMENT GROUP COUNTER 286 6722 STR=6722 /SET TERMINAL READY 287 6704 EDF=6704 /ENABLE DATAPHONE FEATURES 288 6714 DDF=6714 /DISABLE DATAPHONE FEATURES 289 6724 CTR=6724 /CLEAR TERMINAL FLAG 290 6741 CCF=6741 /CLEAR CARRIER FLAG 291 6712 RCS=6712 /READ CARRIER STATUS 292 > /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 8 293 294 295 /FIP IOTS (IN ABBREVIATED FORM) 296 297 0006 SEGS=0006 /RETURN NUMBER OF FREE SEGMENTS ON DISK 298 0040 ASD=0040 /ASSIGN 299 0042 REL=0042 /RELEASE 300 0200 REN=0200 /RENAME 301 0201 OPEN=0201 /OPEN 302 0202 CLOS=0202 /CLOSE 303 6603 RFILE=6603 /READ FILE 304 0204 PROT=0204 /PROTECT 305 6605 WFILE=6605 /WRITE FILE 306 0210 CRF=0210 /CREATE 307 0211 EXT=0211 /EXTEND 308 0212 RED=0212 /REDUCE 309 6613 FINF=6613 /FILE INFORMATION 310 0214 LIN=0214 /LOGIN 311 0215 LOUT=0215 /LOGOUT 312 6616 WHO=6616 /WHO 313 /DEVICE DATA BLOCK 314 315 0000 DDBSTS=0 /WORD 1, STATUS AND UNIT NUMBER 316 2000 DXON=2000 /XOFF SENT FLAG 317 1000 DSI=1000 /DESTINATION IS S.I. FLAG 318 0400 DFULL=400 /KEYBOARD BUFFER IS FULL 319 0200 DUPL=200 /CONSOLE IN DUPLEX MODE 320 0100 SICOM=100 /COMMAND WAITING 321 0040 DECHO=40 /CAUSE SI TO RE-ECHO CURRENT INPUT BUFFER 322 323 /DEVICE UNIT NUMBER IS IN BITS 6-11 324 325 0001 DDBJN=1 /WORD 2, JOB NUMBER IN 7-11 326 0002 DDBBRK=2 /BREAK MASK 327 0003 DDBTIM=3 /TIME THAT DEVICE WAS ASSIGNED 328 0004 DDBINP=4 /BUFFER FILL POINTER 329 0005 DDBINC=5 /BUFFER TOTAL COUNT 330 0006 DDBOUC=6 /BUFFER EMPTY COUNT 331 0007 DDBOUP=7 /BUFFER EMPTY POINTER /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 9 332 333 /JOB DATA AREA 334 335 0000 JOBSTS=0 /STATUS 336 /STR0 337 4000 JSRUN=4000 /RUN BIT 338 2000 JSEREN=2000 /USER ERROR ENABLE 339 1000 JCOMBD=1000 /LAST TIME THE JOB RAN AS COMPUTE BOUND 340 0400 JSPEEK=400 /ALLOW "PEEK" AND "LOGOUT" IOT'S 341 0200 JSACC=200 /JOB LOGGED IN UNDER PRIVILEGED ACCOUNT (1,2 OR 3) 342 0100 JSIOT=100 /NON-RESIDENT IOT 343 0040 JSIOTC=40 /COPY IOT RESULT TO USER 344 0020 JSEXON=20 /EXECUTE ONLY 345 0010 JSINER=10 /INHIBIT ERROR REPORT FROM SI. (UNTIL NEXT COMMAND) 346 /BITS 9-11 ARE SYSTEM ERROR CODE 347 0001 UUOERF=1 /IOT ERROR 348 0002 SWPRER=2 /SWAP READ ERROR 349 0003 SWPWER=3 /SWAP WRITE ERROR 350 0005 DSKERR=5 /DISC ERROR 351 0006 HUNGDV=6 /HUNG DEVICE 352 353 /STR1 354 4000 JSTIME=4000 /TIME IS UP 355 2000 JSF0=2000 /FILE 0 NOT BUSY 356 1000 JSF1=1000 /FILE 1 IS NOT BUSY 357 0400 JSF2=400 /FILE 2 IS NOT BUSY 358 0200 JSF3=200 /FILE 3 IS NOT BUSY 359 0100 JSDEL=100 /KEYBOARD DELIMITER SEEN 360 0040 JSLPT=40 /LINE PRINTER BUFFER IN USE BUT NOT FULL 361 0020 JSTEL=20 /TELEPRINTER OUTPUT BUFFER IN USE BUT NOT FULL 362 0010 JSPTR=10 /CHARACTERS IN READER BUFFER 363 0004 JSPTP=4 /PUNCH BUFFER IN USE BUT IS NOT FULL 364 0002 JSERR=2 /SYSTEM ERROR DETECTED 365 0001 JSWAIT=1 /JOB NOT IN WAIT STATE 366 367 368 0002 JOBSTB=2 /DEVICE STATUS REGISTER (FOR RK05 DECTAPE AND CARD READER) 369 0003 JOBWMK=3 /WAIT MASK 370 0005 JOBSRA=5 /JOB RESTART ADDRESS 371 0006 JOBERR=6 /JOB ERROR RESTART ADDRESS 372 0007 JOBLNK=7 /IOT LINKAGE 373 0010 JOBSWR=10 /SWITCH REGISTER 374 0011 JOBREG=11 /PC LINK AC 375 0014 JOBEAE=14 /MQ MODE GT SC 376 0016 JOBACC=16 /ACCOUNT NUMBER 377 0017 JOBF0=17 /POINTER TO FILE 0 CONTROL 378 0020 JOBF1=20 /POINTER TO FILE 1 CONTROL 379 0021 JOBF2=21 /POINTER TO FILE 2 CONTROL 380 0022 JOBF3=22 /POINTER TO FILE 3 CONTROL 381 0023 JOBRTM=23 /LOW ORDER RUN TIME 382 0024 JOBRTH=24 /HI ORDER RUN TIME /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 10 383 384 /FILE CONTROL BLOCK - POINTED TO BY JOBFX, X=0,1,2,3 385 386 0000 FILWPT=0 /POINTER TO FILE RETRIEVAL WINDOW 387 0001 FILSCT=1 /SEGMENT NUMBER OF FIRST WINDOW ENTRY 388 0002 FILPRO=2 /FILE PROTECTION - BIT 9 389 0003 FILPAR=3 /POINTER TO RFILE OR WFILE PARAMETER BLOCK 390 0004 FILDA=4 /DISC ADDRESS OF RFILE OR WFILE 391 0006 FILWC=6 /-WORD COUNT OF RFILE OR WFILE 392 0007 FILRES=7 /POINTER TO FILPIF IN USER AREA 393 394 /FILE RETRIEVAL WINDOW 395 /WORD 0: UFD LINK TO NEXT GROUP OF 7 SEGMENT POINTERS 396 /WORDS 1-7: SEVEN SEGMENT ADDRESSES 397 398 /RFILE OR WFILE PARAMETER BLOCK - POINTED AT BY FILPAR 399 400 0000 FILPFN=0 /FUNCTION; 0603 OR 0605 401 0001 FILPDX=1 /DISC EXTENSION 402 0002 FILPIF=2 /INTERNAL FILE # (BITS 10-11) AND FIELD # (BITS 7-9) 403 0003 FILPWC=3 /-WORD COUNT FOR THIS TRANSFER 404 0004 FILPCA=4 /CORE ADDRESS FOR THIS TRANSFER 405 0005 FILPDA=5 /DISC ADDRESS 406 0006 FILPRA=6 /EXEC RETURN ADDRESS FOR THIS TRANSFER 407 0007 FILPCT=7 /POINTER TO FILE CONTROL BLOCK 408 409 410 /CORE TABLE CONTROL FLAGS 411 412 4000 SWAP=4000 /SWAP REQUEST 413 2000 LOCK=2000 /LOCK IN CORE 414 1000 NOTRUN=1000 /HAS NOT BEEN SCHEDULED TO RUN 415 0400 FIP=400 /FILE PHANTOM 416 0200 SI=200 /SYSTEM INTERPRETER 417 0140 NOHOLD=140 /INHIBIT "NOTRUN" STATUS AFTER FOUR CONSECUTIVE FILE TRANSFERS 418 0037 CJOB=37 /BITS 7-11 CONTAIN THE JOB # 419 420 421 422 /FIP TABLE DEFINITIONS 423 424 0530 SATSIZ=530 425 6000 JTABLE=6000 426 6025 ENTABL=JTABLE+JOBMAX+1 427 6265 UTABLE=ENTABL+JOBMAX+JOBMAX+JOBMAX+JOBMAX+JOBMAX+JOBMAX+JOBMAX+JOBMAX 428 6525 RTABLE=UTABLE+JOBMAX+JOBMAX+JOBMAX+JOBMAX+JOBMAX+JOBMAX+JOBMAX+JOBMAX 429 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 11 430 431 /TABLES 432 7001 CORTBL=7001 /CORE ASSIGNMENT TABLE 433 7010 L2QTB=CORTBL+7 434 IFZERO DC08A 435 0400 IFNZRO DC08A /SIZE OF FIELD 1 DC08A CODE PLUS 689AG CODE 436 437 0200 OUTREG=200 /ACTIVE OUTPUT REGISTERS (TTY'S, LPT & PTP) 438 0236 SKPTBL=OUTREG+NULINE+3 /START OF IOT SKIP TABLE 439 0327 SKPTP=SKPTBL+NULINE+NULINE+3 /POSITION OF PUNCH SKIP IN SKIP TABLE 440 0332 RINGIN=SKPTP+3 /KEYBOARD INPUT RING BUFFER 441 0400 ENDBUF=OUTREG+200 /END OF KEYBOARD INPUT BUFFER 442 0023 INPUTS=ENDBUF-RINGIN%2 /NUMBER OF POSSIBLE ENTRIES IN THE KEYBOARD RING BUFFER 443 444 6211 DATFLD=CDF 10 /MONITOR DATA FIELD SELECT 445 446 IFZERO EAE-20 447 IFZERO EAE 448 0000 IFZERO CPU&7776 > 449 IFNZRO OUTREG&1 450 /SUPER CRITICAL LOCATIONS 451 /THESE LOCATIONS ARE USED TO LINK TS8, TS8II, FIP, SI AND INIT. 452 453 /IT MAY BE NECESSARY TO ADJUST THEM ACCORDINGLY 454 455 /DEFINED IN TS8: 456 457 2573 WSCHED=2573 /ADDRESS FOR WAIT 458 0401 GETJTB=401 /GETJTA 459 1317 CORSRC=1317 /SEARCH CORE TABLE 460 5171 OVERLA=5171 /FILE STUFF 461 0574 READFI=574 /MORE FILE STUFF 462 0132 CONDBA=132 /DEVTBL POINTER USED BY "PRINT" ETC. 463 0611 RETB=611 /RETURN A BLOCK TO FREE CORE 464 1405 GETB=1405 /GET A BLOCK OF FREE CORE 465 1447 GETDB0=1447 /GET A DDB 466 0051 CLK1=51 /LOW ORDER DAYTIME CLOCK 467 0050 CLK2=50 /HIGH ORDER DAYTIME CLOCK 468 0166 DATE=166 /12 BIT DATE WORD 469 0031 TTCHAR=31 /SAVE REG. FOR CONSOLE CHARACTERS 470 3201 KBD00=3201 /PROCESS KEYBOARD INPUT 471 1205 PRINT0=1205 /TYPE OUT A CHARACTER 472 0562 OVRLA1=562 /MORE FILE STUFF 473 0605 RUNFI=605 /SI FILE TRANSFER INITIALIZER 474 0103 L2SF=103 /LEVEL 2 SAVED MODE AND FIELD 475 6572 SICLR=6572 /SI CLEAR LINKED BUFFER 476 2421 TIMSI=2421 /TIMER FOR SI "COMWAT" 477 1702 SIWAIT=1702 /NUMBER OF SI COMMANDS BEING WAITED ON 478 2423 TIMFIP=2423 /TIMER FOR FIPLOCK 479 2724 FIPLOK=2724 /CORTBL STATUS CHECK FOR FORCE OUT 480 0322 CLKINI=322 /CONVERT HARDWARE CLOCK TO SYSTEM-TICKS (100MS) 481 1602 BLT0=1602 /BLOCK TRANSFER FROM CORE TO CORE 482 3213 KBDSQ=3213 /ADDRESS OF JMS TO ^S/^Q CODE /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 12 483 484 485 /DEFINED IN TS8II: 486 487 0175 F1TCNT=175 /SI DDB CHARACTER COUNT 488 0176 F1ECNT=176 /SI DDB EMPTY COUNT 489 0177 F1BUF=177 /SI DDB EMPTY BLOCK POINTER 490 0020 DTJOB=20 /JOB OWNING THE DECTAPE CONTROLLER 491 0054 RKJOB=54 /JOB OWNING RK05 CONTROLLER 492 1175 DTSI=1175 /SI TERMINATE A DECTAPE ON TIMER 493 2600 DATA1=2200+DCSIZE 494 2740 DEVTBL=DATA1+140 495 3030 DEVTBE=DEVTBL+NULINE+NULINE+2 496 3052 JOBTBL=DEVTBE+22 497 3077 CLKTBL=JOBTBL+JOBMAX+1 498 3124 TTYTBL=CLKTBL+JOBMAX+1 499 3151 PRGTBL=TTYTBL+JOBMAX+1 500 3236 DSUTBL=PRGTBL+JOBMAX+JOBMAX+JOBMAX-7 501 7720 FIPBLK=7720 /FIXED BLOCK FOR FIP IO 502 7730 WINBAS=7730 /ADDRESS OF THE BASIC WINDOW 503 2340 OUTDIF=-OUTREG^2+DEVTBL /FOR LINKING BETWEEN OUTREG AND DEVTBL 504 0164 F1OFFJ=164 /FOR OFF /ON COMMANDS USED BY SI 505 IFNZRO DEVTBL&1 506 507 /DEFINED IN SI 508 509 7270 DTSIDT=7270 /RETURNED FROM STOPPING A DECTAPE ON TIMER 510 7600 VERBRK=7600 /START OF INSTALLATION DEFINED LOGIN MESSAGE 511 /FIP VERSION 8.24 (01-JANUARY-75) 512 / 513 / 514 / 515 / 516 /COPYRIGHT (C) 1975 517 /DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. 518 / 519 / 520 /THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY 521 /ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH 522 /THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS 523 /SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- 524 /VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON 525 /EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO 526 /THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE 527 /SOFTWARE SHALL REMAIN IN DEC. 528 / 529 /THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE 530 /WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A COM- 531 /MITMENT BY DIGITAL EQUIPMENT CORPORATION. 532 / 533 /DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR 534 /RELIABILITY OF ITS SOFTWARE ON EQUIPMENT WHICH IS NOT 535 /SUPPLIED BY DEC. /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 13 536 537 /FIP HANDLES ALL NON-RESIDENT FILE IOT'S 538 539 /RUNS IN AN UPPER FIELD IN PLACE OF USER IT IS SERVING 540 541 /RUNS IN EXEC MODE 542 543 FIELD 1 /FIP LOADS ONTO DISK TRACK 1 544 545 0000 *0 546 10000 5401 JMP I .+1 547 10001 0200 FIP0 548 10002 4133 LNS01, LNS0 549 10003 2316 RETBK1, RETBKS 550 10004 3514 LNK01, LNK0 551 10005 2223 ZDS1, DS1 / 552 553 0010 *10 554 10010 0000 INDEX, 0 /ONLY REGISTER AVAILABLE IN FIP FOR INDEXING 555 10011 5400 P5400, 5400 556 10012 2000 P2000, 2000 557 10013 0077 P0077, 0077 558 10014 0007 P0007, 7 559 FIDEXP, /TO REPLACE FIDEXP, FIPDEX WHERE FIPDEX=4 560 10015 0004 P0004, 4 561 FIPFLD, /FIELD WE ARE RUNNING IN 562 10016 0020 C0020, 20 563 C002, 564 10017 0002 FILPRP, FILPRO 565 566 567 0155 FIPDAT= 155 /DATA REFERENCED BY FIP 568 0155 *FIPDAT 569 570 10155 0155 FIPJOB, . 571 10156 0400 C0400, 400 572 0156 SEGSIZ= C0400 /# WORDS PER SEGMENT 573 10157 0031 FIBASE, SWDEX+JOBMAX /BASE ADDRESS OF ALLOCATABLE DISC STORAGE 574 10160 0160 JOB, . /# OF CURRENT JOB 575 10161 0161 JOBDAT, . /ADDRESS OF CURRENT JOB DATA LIST. MUST RESIDE IN DATA FIELD. 576 P7000, 577 10162 7000 CORTBA, CORTBL-1 /CORE ALLOCATION TABLE 578 10163 2740 DEVTBA, DEVTBL /DEVICE TABLE 579 10164 3030 DEVEND, DEVTBE /START OF ASSIGNABLE DEVICE TABLE 580 10165 0165 DSBUSY, . /DISC BUSY COUNT 581 582 /THE DATE IS KEPT AS A 12 BIT NUMBER IN THE FORMAT 583 /DATE=((YEAR-1974)*12+(MONTH-1))*31+DAY-1 584 585 10166 0166 DATE, . /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 14 586 587 10167 1602 BLTA, BLT0 /BLOCK TRANSFER 588 4567 BLT= JMS I BLTA 589 10170 1317 CORSRA, CORSRC 590 4570 CORE= JMS I CORSRA 591 10171 1405 GETBA, GETB 592 4571 GETBLK= JMS I GETBA 593 10172 1447 GETDBA, GETDB0 /GET A DATA BLOCK 594 4572 GETDDB= JMS I GETDBA 595 10173 1205 PRINTA, PRINT0 /TYPE OUT A CHARACTER 596 4573 PRINT= JMS I PRINTA 597 10174 0401 GETJT0, GETJTB /GET JOB DATA TABLE ADDRESS 598 4574 GETJTA= JMS I GETJT0 599 10175 0611 RETBA, RETB /RETURN BLOCK TO FREE STORAGE 600 4575 RETBLK= JMS I RETBA 601 10176 2573 WAITA, WSCHED 602 5576 WAIT= JMP I WAITA 603 10177 3052 DEVOVR, JOBTBL /END OF DEVICE TABLE; START OF JOB TABLE 604 605 0020 *20 606 10020 0000 FIUSAC, 0 /SAVED USER AC 607 10021 0000 FIJOB, 0 /JOB NUMBER FILE PHANTOM IS REPRESENTING 608 10022 0000 FIOPTR, 0 /POINTER TO FIELD 0 IOT 609 10023 0000 GDRETP, 0 /RETRIEVAL POINTER, SET BY GD0 ROUTINE 610 10024 0000 WNDREM, 0 /REMAINDER FROM DIVISION BY 7 611 10025 0000 BUFSTA, 0 /BUFFER STATUS, 7777 IF FULL 612 10026 0001 BUFMOD, 1 /BUFFER MODIFIED IF =0; UNCHANGED IF =1 613 10027 0000 SATSTA, 0 /SATSTATUS, 7777 IF CHANGED THIS RUN 614 10030 0000 TABSTA, 0 /TABLE STATUS, 7777 IF CHANGED THIS RUN 615 616 /POINTERS TO FILE PHANTOM'S INTERNAL TABLES 617 618 10031 6000 JOBTAB, JTABLE /TABLE OF PROJ,PROG NUMBERS FOR ALL ACTIVE JOBS 619 ENTEND, /END OF ENTRY TABLE 620 10032 6265 UFDTBL, UTABLE /TABLE OF ALL ACCESSED UFD'S 621 UFDEND, /TOP OF UFD TABLE 622 10033 6525 RETTBL, RTABLE /TABLE OF RETRIEVAL INFORMATION FOR ALL ACCESSED UUFD'S 623 10034 6015 ENTTBL, ENTABL-10 /TABLE REFLECTING STATE OF ALL POSSIBLE FILE NUMBERS 624 10035 5400 BUFFER, 5400 /BUFFER FOR DIRECTORY MANIPULATIONS 625 10036 7250 SATBOT, -SATSIZ /BOTTOM OF STORAGE ALLOCATION TABLE /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 15 626 627 /SUBROUTINE POINTERS 628 629 10037 5045 DE01, DE0 /GET A DIRECTORY ENTRY 630 10040 2200 DS01, DS0 /DIRECTORY SEARCH 631 10041 2600 GE01, GE0 /GET A DIRECTORY WORD INTO CORE 632 10042 0334 GD01, GD0 /GET A FILE DIRECTORY ENTRY INTO CORE 633 10043 2171 WRT1, WR1 /MAKE SURE THE BUFFER IS EMPTY 634 10044 3444 DTE01, DTE0 635 10045 2520 FIO01, FIPIO /COMMON DISC I/O ROUTINE 636 10046 2400 SATL1, SATLOK /GET A FREE SEGMENT FROM SAT 637 10047 3020 TF01, TF0 /FREE AN ENTRY ON UFD TABLE 638 10050 3043 UC01, UC0 /USER-OWNER FILE CHECK 639 10051 3200 UFO01, UFO0 /OPEN A UFD 640 10052 3307 UTS01, UTS0 /SEARCH UFD TABLE FOR PROJ,PROG NUMBER 641 10053 0621 CL01, CL0 /CLOSE A FILE 642 10054 2656 WND201, WND20 /DIVIDE BY SEVEN 643 10055 3400 FIEXIT, FIX0 /EXIT ROUTINE 644 10056 4061 BLDP1, BLDP /BUILD A POINTER TO ENTTBL 645 10057 0667 ENR01, ENR0 646 10060 4200 REL01, REL00 647 10061 0367 WR01, WR0 648 10062 2151 GTBLO1, GTBLOK 649 10063 0357 EBLD0, EBLD 650 10064 0765 JBLD0, JBLD 651 10065 4570 FIX401, FIX40 652 10066 0352 IFN01, IFN0 653 10067 2144 LGI201, LGI20 /-1 TO USER AC 654 4470 FGETJT= JMS I . 655 10070 3526 FGETJ0 656 10071 2263 DIRBAD, BADDIR 657 658 /CONSTANTS 659 660 10072 0006 C0006, 6 661 10073 0200 C0200, 200 662 10074 0037 P0037, 37 663 10075 0003 P0003, 3 664 10076 6000 P6000, 6000 665 10077 0777 P0777, 777 666 10100 6605 C0605, 6605 667 10101 0005 C0005, 5 668 10102 6603 C0603, 6603 669 10103 7774 C7774, -4 670 10104 4400 C4400, 4400 671 10105 7771 C7771, 7771 672 10106 7770 P7770, 7770 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 16 673 674 6221 CFLD= CDF 20 /FIP IS ALWAYS IN FIELD 2 675 EXQ1, 676 10107 0000 UTPRNU, 0 /USED BY UTS0 ROUTINE TO HAVE THE PTR TO UFD TABLE WHILE SEARCHING 677 10110 0000 CFH, 0 /THIS LOCATION IS USED FOR TEMP STORAGE BY MANY ROUTINES 678 10111 2075 ACC01, ACT01 /SEE IF CALLING USER IS ACCOUNT 1 679 10112 4643 BASCO1, BASCO0 /SEE IF THE FILE IS BASIC 680 10113 0000 BASSWT, 0 /SWITCH FOR BASIC 681 10114 0010 C0010, 10 682 10115 7700 C7700, 7700 683 10116 7730 BASWIN, WINBAS /FIELD 1 ADDRESS OF BASIC WINDOW 684 10117 4716 BAS1A, BAS0 /CREATES A BASIC WINDOW 685 10120 0000 SEGLIM, 0 686 REWNDC, 687 10121 0000 REL6, 0 688 689 690 691 10122 0000 FIOSTK, 0 /STACK HOLDING IOT LINKAGE 692 10123 0000 0 693 10124 0000 0 694 10125 0000 0 695 10126 0000 0 696 10127 0000 0 697 10130 0000 0 698 10131 0000 0 699 700 10132 0000 FLPARB, 0 /TABLE FOR READ OR WRITE PARAMETER CONSTRUCTION 701 10133 0000 0 702 10134 0000 0 703 10135 0000 0 704 10136 0000 0 705 10137 0000 0 706 10140 5171 OVERLA 707 10141 0000 0 708 709 /ROUTINE TO RELEASE FREE BLOCK, (IF ANY), IF IT IS 710 /NECESSARY TO ABORT FIP FOR SOME REASON. 711 10142 1122 RETURN, TAD FIOSTK /GET THE IOT THAT BROUGHT US HERE 712 10143 7040 CMA /IS THERE A PARAMETER BLOCK? 713 10144 0154 AND C4010 714 10145 7640 SZA CLA 715 10146 5455 JMP I FIEXIT /NONE, OK TO EXIT 716 10147 6211 DATFLD 717 10150 1422 TAD I FIOPTR /GET THE BLOCK 718 10151 4403 JMS I RETBK1 /RETURN IT SO IT WON'T BE LOST FOREVER 719 10152 7200 CLA 720 10153 5455 JMP I FIEXIT /NOW IT'S OK TO LEAVE 721 722 10154 4010 C4010, 4010 /MASK FOR FINF AND WHO /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 17 723 724 /FILE PHANTOM START 725 /FIP'S FIRST JOB IS TO PICK UP THE IOT WHICH IT IS TO PERFORM 726 /AND THE PARAMETERS WHICH GO ALONG WITH IT (IF ANY). THESE 727 /ARE MOVED INTO AN 8-WORD BLOCK CALLED 'FIOSTK.' THE FIRST REG- 728 /ISTER IN THIS BLOCK CONTAINS THE IOT, PARAMETERS FOLLOW 729 0200 *200 730 731 10200 7301 FIP0, CLL CLA IAC 732 10201 3026 DCA BUFMOD /MARK BUFFER AS NOT MODIFIED 733 10202 3027 DCA SATSTA /CLEAR SAT STATUS 734 10203 3030 DCA TABSTA /CLEAR TABLE STATUS 735 10204 1025 TAD BUFSTA /IS THERE VALID DATA IN THE BUFFER? 736 10205 7640 SZA CLA 737 10206 7001 IAC /YES; RE-CALCULATE DISK PARAMETERS IF NEEDED 738 10207 3025 DCA BUFSTA 739 10210 6201 6201 /CDF FIELD ZERO 740 10211 1560 TAD I JOB /GLOBAL TO "JOB" 741 10212 0074 AND P0037 742 10213 3021 DCA FIJOB /SAVE IT 743 10214 6221 CFLD 744 10215 4470 FGETJT /SAVE USER AC 745 10216 0013 JOBREG+2 746 10217 3020 DCA FIUSAC /ADDRESS OF USER'S AC 747 10220 4470 FGETJT 748 10221 0007 JOBLNK /IOT REQUEST WORD 749 10222 3022 DCA FIOPTR /POINTER TO IOT LINKAGE 750 10223 6211 DATFLD 751 10224 1420 TAD I FIUSAC 752 10225 3020 DCA FIUSAC /USER'S AC 753 10226 1422 TAD I FIOPTR /PICK UP LINKAGE 754 10227 0333 AND IC7400 /IS IT AN IOT? (IF IT IS, JOBLNK WILL HAVE BITS 0-3 CLEARED) 755 10230 7650 SNA CLA 756 10231 5302 JMP FIP2 /IS AN IOT, SO GO MOVE IT INTO FIOSTK (AC IS PARAMETER) 757 10232 1422 TAD I FIOPTR /IS A POINTER, PICK UP LINKAGE 758 10233 3240 DCA FIP6 /POINTER TO LINKAGE TABLE 759 10234 6221 CFLD 760 10235 6202 6202 /CIF FIELD 0 761 10236 4567 BLT /MOVE IOT PARAMETERS INTO FIOSTK 762 10237 6211 DATFLD 763 10240 0000 FIP6, 0 764 10241 6221 6221 /CDF THIS FIELD 765 10242 0122 FIOSTK /IOT LINKAGE BUFFER 766 10243 7770 -10 767 10244 1122 TAD FIOSTK 768 10245 7710 SPA CLA /WILL THE IOT PARAMETER BLOCK BE NEEDED TO RETURN PARS? 769 10246 5255 JMP FIP4 /YES, SO DON'T RETURN IT 770 10247 1240 TAD FIP6 771 10250 4403 JMS I RETBK1 /RETURN THE IOT PARAMETER BLOCK TO FREE CORE 772 10251 7300 CLA CLL 773 10252 6211 DATFLD 774 10253 3422 DCA I FIOPTR /CLEAR JOBLNK TO AVOID CONFUSION LATER 775 10254 6221 CFLD /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 18 776 777 /COMES HERE WHEN IOT AND ITS PARAMETERS ARE COMFORTABLY 778 /NESTLED IN FIOSTK 779 10255 1307 FIP4, TAD IOTABL 780 10256 3332 DCA FITPTR /TABLE POINTER 781 10257 2332 FIP5, ISZ FITPTR /PICK UP IOT FROM TABLE 782 10260 1732 TAD I FITPTR 783 10261 7450 SNA /END OF TABLE? 784 10262 5467 JMP I LGI201 /DON'T KNOW WHAT TO DO SO PASS BACK AN ERROR AT LEAST 785 10263 7041 CIA /NO 786 10264 1122 TAD FIOSTK /IOT FROM USER 787 10265 7640 SZA CLA /DISPATCH? 788 10266 5257 JMP FIP5 /NO 789 10267 1307 TAD IOTABL /YES, FIND PROPER POINTER 790 10270 7041 CIA 791 10271 1332 TAD FITPTR 792 10272 1331 TAD IODSPA 793 10273 3332 DCA FITPTR 794 10274 1732 TAD I FITPTR /PICK UP DISPATCH ADDRESS 795 10275 3332 DCA FITPTR 796 10276 1122 TAD FIOSTK /IS THIS AN IOT WHICH DOES REQUIRE PARAMETERS TO BE 797 /RETURNED IN AN IOT PARAMETER BLOCK? 798 10277 7700 SMA CLA /...IF SO, USER AC CONTAINS A PTR TO WHERE THEY WILL GO 799 10300 3020 DCA FIUSAC /CLEAR USER AC 800 10301 5732 JMP I FITPTR /DISPATCH 801 802 /COMES HERE FOR A "SHORT" IOT. SAVED AC IS ONLY PARAMETER 803 /PUT IT IN FIOSTK+1 804 10302 1422 FIP2, TAD I FIOPTR /PICK UP IOT 805 10303 3122 DCA FIOSTK /PLACE ON STACK 806 10304 1020 TAD FIUSAC /USER ACCUMULATOR 807 10305 3123 DCA FIOSTK+1 /SIMULATE LINKAGE 808 10306 5253 JMP FIP4-2 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 19 809 810 10307 0307 IOTABL, . /TABLE OF USER FILE IOT'S 811 10310 0040 ASD /ASSIGN A DEVICE 812 10311 0042 REL /RELEASE A DEVICE 813 10312 0200 REN /RENAME A FILE 814 10313 0201 OPEN /OPEN A FILE 815 10314 0202 CLOS /CLOSE A FILE 816 10315 6603 RFILE /FILE READ (WINDOW MOVE) 817 10316 0204 PROT /FILE PROTECTION 818 10317 6605 WFILE /FILE WRITE (WINDOW MOVE) 819 10320 0210 CRF /CREATE A FILE 820 10321 0211 EXT /EXTEND A FILE 821 10322 0212 RED /REDUCE A FILE 822 10323 6613 FINF /FILE INFORMATION 823 10324 0214 LIN /LOGIN 824 10325 0215 LOUT /LOGOUT 825 10326 6616 WHO /RETURN PASSWORD 826 10327 0006 SEGS /RETURN # OF DISK SEGMENTS AVAILABLE 827 10330 0000 0 828 829 10331 1156 IODSPA, IODISP-1 830 10332 0000 FITPTR, 0 831 10333 7400 IC7400, 7400 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 20 832 833 /ROUTINE TO GET A DIRECTORY ENTRY INTO CORE 834 835 /CALLING SEQUENCE: 836 / TAD (INTERNAL FILE NUMBER) 837 / JMS GD0 838 / RETURN (BUFFER POINTER IN AC, 0=ERROR) 839 840 10334 0000 GD0, 0 841 10335 4463 JMS I EBLD0 842 10336 3351 DCA GDUFDP 843 10337 1751 TAD I GDUFDP /RELATIVE POSITION IN UFD TABLE 844 10340 4456 JMS I BLDP1 845 10341 3023 DCA GDRETP /POINTER TO UFD RETRIEVAL INFORMATION 846 10342 2351 ISZ GDUFDP 847 10343 1751 TAD I GDUFDP /PICK UP ENTRY ADDRESS WITHIN UFD 848 10344 3347 DCA GD1 849 10345 1023 TAD GDRETP 850 10346 4441 JMS I GE01 /GET ENTRY INTO CORE 851 10347 0000 GD1, 0 852 10350 5734 JMP I GD0 853 10351 0000 GDUFDP, 0 854 855 10352 0000 IFN0, 0 856 10353 1123 TAD FIOSTK+1 857 10354 0075 AND P0003 858 10355 3123 DCA FIOSTK+1 859 10356 5752 JMP I IFN0 860 861 10357 0000 EBLD, 0 862 10360 3110 DCA CFH 863 10361 1021 TAD FIJOB 864 10362 7106 CLL RTL 865 10363 1110 TAD CFH 866 10364 7004 RAL 867 10365 1034 TAD ENTTBL 868 10366 5757 JMP I EBLD 869 870 10367 0000 WR0, 0 /WRITE OUT THE CONTENTS OF THE BUFFER 871 10370 1100 TAD C0605 /WRITE IOT 872 10371 3132 DCA FLPARB /I/O PARAMETER BLOCK 873 10372 4445 JMS I FIO01 /PERFORM THE WRITE 874 10373 7402 HLT /ERROR ON WRITE, TOO BAD 875 10374 7201 CLA IAC 876 10375 3026 DCA BUFMOD /SET NOT-MODIFIED STATUS 877 10376 5767 JMP I WR0 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 21 878 879 /ROUTINE TO OPEN A FILE 880 881 10377 4512 OPN0, JMS I BASCO1 /IF BASIC SET BASSWT TO -1 882 10400 3342 DCA OPENTT /PTR TO ENTTBL 883 10401 4464 JMS I JBLD0 /PROJ PROG # OF THIS JOB IN AC 884 10402 3262 DCA PRJPRO /SAVE PROJ, PROG # 885 10403 1124 TAD FIOSTK+2 886 10404 7450 SNA /IF HE OWNS THE FILE THEN FIOSTK+2 IS 0 887 10405 5234 JMP OPNOWN /YES, HE DOES 888 10406 7041 CIA 889 10407 1262 TAD PRJPRO /IF HE HAS MENTIONED THE PROJ, PROG # 890 10410 7650 SNA CLA /CHECK IF HE IS THE OWNER 891 10411 5234 JMP OPNOWN 892 10412 7240 STA 893 10413 1124 TAD FIOSTK+2 /TRYING TO OPEN ACCOUNT 1 FILE? 894 10414 7640 SZA CLA 895 10415 5223 JMP .+6 /NO, OK 896 10416 1125 TAD FIOSTK+3 /WHOSE UFD? 897 10417 7041 CIA 898 10420 1262 TAD PRJPRO /HIS/HER OWN? 899 10421 7640 SZA CLA 900 10422 5351 JMP OPN3 /NO, TELL HIM/HER FILE NOT FOUND 901 10423 1124 TAD FIOSTK+2 902 10424 0115 AND C7700 /TAKE OUT JUST THE PROJ # OF THE FILE 903 10425 7041 CIA 904 10426 1262 TAD PRJPRO /DOES IT AGREE WITH JOB'S PROJ #? 905 10427 0115 AND C7700 906 10430 7650 SNA CLA 907 10431 1075 TAD P0003 /4 IN AC SAME PROJ # 908 10432 7101 CLL IAC /1 IN AC DIFF PROJ # 909 10433 5237 JMP .+4 910 10434 1262 OPNOWN, TAD PRJPRO 911 10435 3124 DCA FIOSTK+2 912 10436 1114 TAD C0010 /10 IN AC IF HE OWNS THE FILE 913 10437 3262 DCA PRJPRO /STORE PROTECTIVE BITS FOR READ CASE 914 10440 1124 TAD FIOSTK+2 /PICK UP THE PROJ PROG # OF THE FILE 915 10441 4452 JMS I UTS01 /SEARCH OPEN UFD TABLE RETURN WITH PTR IN AC 916 10442 5371 JMP OPN6 /UFD NOT OPEN, GO OPEN IT 917 10443 3742 OPN2, DCA I OPENTT /SAVE ITS RELATIVE PTR IN ENTTBL 918 10444 1742 TAD I OPENTT /GET RELATIVE ADDRESS OF UFD TBL 919 10445 4456 JMS I BLDP1 /BUILD A PTR TO RETTBL ENTRY 920 10446 3124 DCA FIOSTK+2 /SAVE IT 921 10447 4440 JMS I DS01 /3 WORD SEARCH 922 10450 0124 FIOSTK+2 923 10451 5351 JMP OPN3 /NO SUCH FILE 924 10452 1014 TAD P0007 /PTR TO RETRIEVAL ENTRY IN BUFFER 925 10453 3274 DCA OPBUFP 926 10454 2342 ISZ OPENTT 927 10455 1405 TAD I ZDS1 /GET THIS FILE'S DIRECTORY ADDRESS 928 10456 3742 DCA I OPENTT /SAVE IN SECOND WORD OF ENTTBL ENTRY 929 10457 7146 CLL CMA RTL /-3 IN AC 930 10460 1274 TAD OPBUFP /PTR TO PROTECTION BIT 931 10461 4776 JMS I OPN11A /CHECK PROTECTION OF THE FILE 932 10462 0000 PRJPRO, 0 933 10463 1674 TAD I OPBUFP /ADD POINTER TO FIRST RETRIEVAL WINDOW AND 934 10464 3262 DCA PRJPRO /SAVE WITH PROTECTION BIT /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 22 935 10465 1375 TAD OPNFI0 /JOB STATUS WORD FILE FOR FILE 0 936 10466 1123 TAD FIOSTK+1 937 10467 3277 DCA OPACSC /FOR LINKING A BLOCK 938 10470 1674 TAD I OPBUFP /GET RETRIEVAL WINDOW 939 10471 3274 DCA OPBUFP /SAVE IT 940 10472 1124 TAD FIOSTK+2 941 10473 4441 JMS I GE01 /GET RETRIEVAL WINDOW IN CORE 942 10474 0000 OPBUFP, 0 943 10475 3342 DCA OPENTT /SAVE THE BUFFER ADDRESS 944 10476 4470 FGETJT /GET THE ADDRESS OF JOB STATUS FOR THIS FILE 945 10477 0000 OPACSC, 0 946 10500 3277 DCA OPACSC /SAVE POINTER 947 10501 1277 TAD OPACSC 948 10502 4462 JMS I GTBLO1 /GET A BLOCK LINKED FOR FILE CONTROL 949 10503 5354 JMP OPNOT /NO FREE CORE; CAN'T OPEN THEN 950 10504 3274 DCA OPBUFP /SAVE IT TO BUILD THE FILE CONTROL BLOCK 951 10505 2113 ISZ BASSWT 952 10506 5332 JMP OPN123 953 10507 1516 TAD I BASWIN /IS BASIC WINDOW ALREADY SET UP? 954 10510 7001 IAC 955 10511 7650 SNA CLA /YES THEN HAS -1 956 10512 5315 JMP OPRET1 /BASIC WINDOW ALREADY LOADED 957 10513 1342 TAD OPENTT /BUFFER ADDRESS OF THE WINDOW 958 10514 4517 JMS I BAS1A /CREATE BASIC WINDOW 959 10515 1116 OPRET1, TAD BASWIN /PUT BASIC WINDOW POINTER IN CONTROL BLOCK 960 10516 3674 DCA I OPBUFP 961 10517 6221 OPRET, CFLD 962 10520 7240 CLA CMA /ACCESS COUNT IN UFDTBL 963 10521 1507 TAD I UTPRNU /INCREASE BY -1 964 10522 3507 DCA I UTPRNU 965 10523 6211 DATFLD 966 10524 2274 ISZ OPBUFP 967 10525 2274 ISZ OPBUFP /POINTS TO PROTECTION BIT 968 10526 1262 TAD PRJPRO 969 10527 3674 DCA I OPBUFP /PUT IN THE WRITE PROT BIT CREATED BEFOREHAND 970 10530 5731 JMP I .+1 /EXIT AND WRITE OUT TABLES 971 10531 3165 TABOUT 972 973 10532 1274 OPN123, TAD OPBUFP /LINK A BLOCK 974 10533 4462 JMS I GTBLO1 975 10534 5363 JMP OPN4 /NO FREE CORE, CAN'T OPEN 976 10535 3344 DCA OPENTU 977 10536 6221 CFLD 978 10537 6202 CIF 979 10540 4567 BLT 980 10541 6221 CFLD /SOURCE 981 10542 0000 OPENTT, 0 982 10543 6211 DATFLD 983 10544 0000 OPENTU, 0 984 10545 7770 -10 985 10546 5317 JMP OPRET /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 23 986 987 10547 7450 OPN5, SNA /DID THE ACCOUNT EXIST? 988 10550 5354 JMP OPNOT /YES; LACK OF ROOM IN UFDTBL 989 10551 7332 OPN3, STL CLA RTR /NOT FOUND ERROR 990 10552 1012 OPNPRE, TAD P2000 /PROTECTED 991 10553 1012 TAD P2000 992 10554 7130 OPNOT, CLL CML RAR /NOT OPEN, LACK OF SYSTEM RESOURCES 993 10555 3020 DCA FIUSAC 994 10556 1123 TAD FIOSTK+1 995 10557 4463 JMS I EBLD0 /BE SURE TO REMOVE ALL THE POINTERS PUT IN BY OPEN 996 10560 3342 DCA OPENTT 997 10561 3742 DCA I OPENTT 998 10562 5455 JMP I FIEXIT 999 1000 10563 1677 OPN4, TAD I OPACSC /CONTROL BLOCK ADDR 1001 10564 4403 JMS I RETBK1 /RETURN IT 1002 10565 6211 DATFLD 1003 10566 3677 DCA I OPACSC /CLEAR POINTER FROM JOB BLOCKS 1004 10567 6221 CFLD 1005 10570 5354 JMP OPNOT /TELL HIM/HER WE COULDN'T OPEN 1006 1007 10571 1124 OPN6, TAD FIOSTK+2 /PICK UP PROJ PROG # 1008 10572 4451 JMS I UFO01 /OPEN UFD 1009 10573 5347 JMP OPN5 /NO LUCK, ERROR 1010 10574 5243 JMP OPN2 /OPENED RELATIVE POSITION IN AC 1011 1012 1013 10575 0017 OPNFI0, JOBF0 1014 10576 4523 OPN11A, OPN11 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 24 1015 1016 1017 /ROUTINE TO CLOSE A FILE 1018 1019 0600 *600 1020 1021 10600 3217 CLS0, DCA CLSIFN /INTERNAL FILE NUMBER 1022 10601 1103 TAD C7774 1023 10602 3220 DCA CLCNTR /COUNTER FOR BIT SCAN 1024 10603 1123 CLS1, TAD FIOSTK+1 /PICK UP BIT PATTERN 1025 10604 7004 RAL 1026 10605 3123 DCA FIOSTK+1 1027 10606 7430 SZL 1028 10607 5214 JMP CLS3 1029 10610 2217 CLS2, ISZ CLSIFN /NEXT FILE NUMBER 1030 10611 2220 ISZ CLCNTR /DONE ALL FOUR? 1031 10612 5203 JMP CLS1 /NO, KEEP AT IT 1032 10613 5455 JMP I FIEXIT /THROUGH 1033 10614 1217 CLS3, TAD CLSIFN /PICK UP INTERNAL FILE NUMBER 1034 10615 4221 JMS CL0 /CLOSE THE FILE 1035 10616 5210 JMP CLS2 /LOOK FOR MORE 1036 1037 10617 0000 CLSIFN, 0 1038 10620 0000 CLCNTR, 0 1039 1040 /ROUTINE TO DO ACTUAL FILE CLOSE 1041 10621 0000 CL0, 0 1042 10622 4463 JMS I EBLD0 1043 10623 3265 DCA CLENTP 1044 10624 1110 TAD CFH 1045 10625 4404 JMS I LNK01 /RETURNS WITH PTR TO FILE CONTROL BLOCK FROM JOB STATUS BLOCK 1046 10626 7450 SNA 1047 10627 5261 JMP CL3 /FILE WAS NOT OPEN 1048 10630 3264 DCA CLPARP /SAVE IT 1049 10631 3510 DCA I CFH /CLEAR POINTER TO FILE CONTROL BLOCK --- INDICATES FILE CLOSED 1050 10632 6221 CFLD /SET DATA FIELD TO THIS FIELD 1051 10633 1264 TAD CLPARP /POINTER TO PARAMETER BLOCK 1052 10634 4663 JMS I CLOBA /PROPERLY CLOSE TESTING FOR BASIC 1053 10635 3340 DCA CLO3 /SWITCH SET TO -1 IF BASIC FILE 1054 10636 7340 CLA CMA CLL 1055 10637 1665 TAD I CLENTP /RELATIVE POINTER TO UFD RETRIEVAL TABLE 1056 10640 7106 CLL RTL 1057 10641 7001 IAC 1058 10642 1032 TAD UFDTBL 1059 10643 3266 DCA CLUFDP /POINTER TO ACCESS COUNTER 1060 10644 3665 DCA I CLENTP /CLEAR PTR IN ENTTBL TO INDICATE FILE IS CLOSED 1061 10645 7240 CLA CMA 1062 10646 3030 DCA TABSTA /SET TABLE STATUS TO WRITE OUT 1063 10647 2666 ISZ I CLUFDP /REMOVE THIS JOB FROM ACCESS COUNT IN UFDTBL 1064 10650 5621 JMP I CL0 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 25 1065 1066 /THIS WAS THE ONLY GUY USING THIS UFD, SO CLOSE IT OUT 1067 10651 2340 ISZ CLO3 /IS IT BASIC FILE BEING CLOSED? 1068 10652 5256 JMP CL11 /NO, PROCEED FURTHER 1069 10653 6211 DATFLD /YES, JUST ZERO ONE LOC IN FIELD 1 1070 10654 3516 DCA I BASWIN 1071 10655 6221 CFLD 1072 10656 7240 CL11, CLA CMA /NO ONE IS NOW ACCESSING THIS UFD 1073 10657 1266 TAD CLUFDP 1074 10660 4447 JMS I TF01 /FREE A TABLE ENTRY 1075 10661 6221 CL3, CFLD 1076 10662 5621 JMP I CL0 1077 1078 10663 4701 CLOBA, CLOBAS 1079 10664 0000 CLPARP, 0 1080 10665 0000 CLENTP, 0 1081 10666 0000 CLUFDP, 0 1082 1083 /SKIPS IF NO OTHER USER IS ACCESSING THIS FILE 1084 10667 0000 ENR0, 0 1085 10670 1123 TAD FIOSTK+1 1086 10671 4463 JMS I EBLD0 1087 10672 3300 DCA ENR1 /PTR INTO ENTTBL 1088 10673 2300 ISZ ENR1 1089 10674 1700 TAD I ENR1 /GET ADDR IN ENTTBL 1090 10675 3300 DCA ENR1 1091 10676 1023 TAD GDRETP /RTABLE 1092 10677 4704 JMS I ENS01 /HOW MANY PEOPLE HAVE THIS FILE OPEN? 1093 10700 0000 ENR1, 0 1094 10701 7410 SKP /FOUND THE SAME FILE OPEN 1095 10702 2267 ISZ ENR0 /...ONLY ONE WHO HAS IT OPEN 1096 10703 5667 JMP I ENR0 1097 1098 10704 2330 ENS01, ENS0 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 26 1099 1100 /CHANGE THE PROTECTION OF A FILE 1101 1102 10705 1123 PRT0, TAD FIOSTK+1 /PICK UP INTERNAL FILE NUMBER 1103 10706 7012 RTR 1104 10707 7012 RTR 1105 10710 7010 RAR 1106 10711 0075 AND P0003 /AND OFF PROTECTION BITS 1107 10712 3340 DCA PRIFNU /INTERNAL FILE NUMBER 1108 10713 1340 TAD PRIFNU 1109 10714 4450 JMS I UC01 /CHECK TO SEE IF USER IS OWNER 1110 10715 5333 JMP PRT1 /ERROR RETURN, USER IS NOT OWNER 1111 10716 4511 JMS I ACC01 /IS HE UNDER ACCOUNT 1? 1112 10717 5334 JMP PRT1+1 /YES; ERROR - HE MUST USE #RENAME# 1113 10720 1340 TAD PRIFNU 1114 10721 4442 JMS I GD01 /GET THIS DIRECTORY ENTRY INTO CORE 1115 10722 7450 SNA 1116 10723 5471 JMP I DIRBAD /**************DEBUG************* 1117 10724 1015 TAD P0004 1118 10725 3341 DCA PRENTP /POINTER TO PROTECTION BITS OF THIS FILE 1119 10726 1342 TAD C7637 1120 10727 0123 AND FIOSTK+1 /PICK UP NEW PROTECTION BITS 1121 10730 3741 DCA I PRENTP /RESTORE 1122 10731 3026 DCA BUFMOD /SCHEDULE WRITE 1123 10732 5455 JMP I FIEXIT 1124 1125 10733 7640 PRT1, SZA CLA /ERROR 1126 10734 7130 CLL CML RAR 1127 10735 7130 CLL CML RAR 1128 10736 3020 DCA FIUSAC 1129 10737 5455 JMP I FIEXIT 1130 1131 CLO3, 1132 10740 0000 PRIFNU, 0 1133 10741 0000 PRENTP, 0 1134 10742 7637 C7637, 7637 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 27 1135 1136 1137 10743 4464 WHO0, JMS I JBLD0 1138 10744 3365 DCA PAS1 1139 10745 7040 CMA /ONE WORD SEARCH 1140 10746 4440 JMS I DS01 /SEARCH THE MFD FOR THIS ACC'T # 1141 10747 0764 PAS0 1142 10750 5471 JMP I DIRBAD /************DEBUG ONLY*********** 1143 10751 3365 DCA PAS1 1144 10752 1765 TAD I PAS1 /GET ACC'T # FROM UFD FILE NAME BLOCK 1145 10753 2365 ISZ PAS1 1146 10754 3123 DCA FIOSTK+1 /STORE ACC'T # 1147 10755 1765 TAD I PAS1 1148 10756 2365 ISZ PAS1 1149 10757 3124 DCA FIOSTK+2 /STORE FIRST TWO CHRS OF PASSWORD 1150 10760 1765 TAD I PAS1 1151 10761 3125 DCA FIOSTK+3 /STORE LAST TWO CHARS OF PASSWORD 1152 10762 5763 JMP I PAINF5 /GO STORE THIS INFORMATION FOR RETURN TO MONITOR 1153 1154 10763 2035 PAINF5, INF5 1155 10764 6525 PAS0, RTABLE 1156 PAS1, 1157 10765 0000 JBLD, 0 1158 10766 1021 TAD FIJOB 1159 10767 1031 TAD JOBTAB 1160 10770 6221 CFLD 1161 10771 3110 DCA CFH 1162 10772 1510 TAD I CFH 1163 10773 5765 JMP I JBLD /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 28 1164 1165 /ROUTINE TO MOVE THE RETRIEVAL WINDOW IN FIELD ZERO 1166 1000 *1000 1167 1168 11000 1124 WND0, TAD FIOSTK+2 /PICK UP INTERNAL FILE NUMBER 1169 11001 0075 AND P0003 /AND OFF FIELD BITS 1170 11002 4463 JMS I EBLD0 1171 11003 3350 DCA WNENTP /POINTER TO RETRIEVAL INFORMATION POINTER 1172 11004 1750 TAD I WNENTP 1173 11005 4456 JMS I BLDP1 /GENERATE ABSOLUTE PTR INTO RETTBL 1174 11006 3351 DCA WNRETP /RETRIEVAL POINTER 1175 11007 1131 TAD FIOSTK+7 1176 11010 3347 DCA WNFCBP /PTR TO THIS FILE'S FILE CONTROL BLOCK 1177 11011 1127 TAD FIOSTK+5 1178 11012 3334 DCA WND5 /LOW ORDER DISK ADDRESS 1179 11013 3352 DCA WNDCNT /GET INTO CORE 1180 11014 1354 TAD WNDCCT /INITIALIZE COUNT 1181 11015 3337 DCA WNDSCT 1182 11016 1356 TAD C0177 1183 11017 0123 AND FIOSTK+1 /GET HIGH ORDER FILE ADDRESS 1184 11020 3301 DCA WNDIRP 1185 11021 1156 TAD SEGSIZ /GET RID OF ADDRESS WITHIN SEGMENT 1186 11022 7141 CLL CIA 1187 11023 0334 AND WND5 1188 11024 7004 RAL 1189 11025 1301 TAD WNDIRP /NOW HAVE FILE SEGMENT #; NEED TO SHIFT IT 1190 11026 7410 SKP 1191 11027 7004 RAL 1192 11030 2337 ISZ WNDSCT /SHIFT SEGCCT TIMES? 1193 11031 5227 JMP .-2 1194 11032 3353 DCA WNSEGC 1195 11033 6211 DATFLD /WNSEGC NOW HAS SEGMENT NUMBER TO GET 1196 11034 1747 TAD I WNFCBP /PICK UP FIELD 0 WINDOW POINTER 1197 11035 3303 DCA WNDPTR /PNTS TO FILE RETRIEVAL WINDOW FOR THIS FILE 1198 11036 2347 ISZ WNFCBP 1199 11037 1747 TAD I WNFCBP /PICK UP NUMBER OF CURRENT SEGMENT IN WINDOW 1200 11040 3355 DCA WNCURS /CURRENT SEGMENT IN WINDOW 1201 11041 1353 TAD WNSEGC /SEGMENT TO GET 1202 11042 4454 JMS I WND201 /DIVIDE BY 7 (IGNORE REMAINDER) 1203 11043 4337 JMS WND30 /MULTIPLY BY 7 1204 11044 3353 DCA WNSEGC /FIRST SEGMENT IN PROPER WINDOW 1205 11045 7240 CLA CMA 1206 11046 1703 TAD I WNDPTR /GET FIRST WORD OF FILE RETRIEVAL WINDOW 1207 11047 7650 SNA CLA /=7777? 1208 11050 5321 JMP WND6 /INVALID WINDOW POINTER 1209 11051 1355 TAD WNCURS /CURRENT SEGMENT AT TOP OF CURRENT CORE WINDOW 1210 11052 7041 CIA /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 29 1211 1212 /NOW SEE IF THE SEGMENT BEING SOUGHT IS ONE WHICH FOLLOWS 1213 /THOSE WHICH ARE PRESENTLY IN THE CORE WINDOW. IF THE 1214 /SOUGHT BLOCK DOES FOLLOW THE PRESENT ONE, WE CAN LOOK 1215 /THROUGH THE RETRIEVAL INFORMATION BLOCKS STARTING AT THE ONE 1216 /NOW IN CORE. OTHERWISE, WE MUST START AT THE VERY BEGINNING 1217 /OF THE LIST OF FILE RETRIEVAL INFORMATION BLOCKS 1218 11053 1353 TAD WNSEGC 1219 11054 7550 SPA SNA 1220 11055 5321 JMP WND6 /PREVIOUS BLOCK, SO MUST START AT BEGINNING OF STRING 1221 11056 4454 JMS I WND201 /DIVIDE BY 7 1222 11057 7041 CIA 1223 11060 3352 DCA WNDCNT /MOVE FORWARD THIS MANY WINDOWS 1224 11061 1303 TAD WNDPTR 1225 11062 3301 WND10, DCA WNDIRP 1226 11063 1701 TAD I WNDIRP /PICK UP ADDRESS OF NEXT WINDOW 1227 11064 6221 CFLD /CHANGE TO CURRENT FIELD 1228 11065 7450 SNA 1229 11066 5276 JMP WND13 /END OF STRING 1230 11067 3272 DCA WND11 1231 11070 1351 TAD WNRETP /POINTER TO UFD RETRIEVAL INFORMATION 1232 11071 4441 JMS I GE01 /GET ENTRY INTO CORE 1233 11072 0000 WND11, 0 1234 11073 2352 ISZ WNDCNT /HAVE WE MOVED AHEAD ENOUGH BLOCKS? 1235 11074 5262 JMP WND10 /NOT PROPER WINDOW, KEEP LOOKING 1236 11075 3301 DCA WNDIRP 1237 11076 6202 WND13, 6202 /CIF FIELD 0 1238 11077 4567 BLT 1239 11100 6221 6221 /SOURCE FIELD (ALWAYS 2) 1240 11101 0000 WNDIRP, 0 /SOURCE 1241 11102 6211 DATFLD /DESTINATION FIELD 1242 11103 0000 WNDPTR, 0 /DESTINATION 1243 11104 7770 -10 /WORD COUNT 1244 11105 1352 TAD WNDCNT /CORRECT FOR WINDOWS THAT WEREN'T THERE 1245 11106 4337 JMS WND30 /MULTIPLY BY 7 1246 11107 1353 TAD WNSEGC /SEGMENT NUMBER OF FIRST IN WINDOW 1247 11110 6211 DATFLD 1248 11111 3747 DCA I WNFCBP /FILE CONTROL BLOCK POINTER 1249 11112 2347 ISZ WNFCBP /POINT AT PROTECTION WORD IN CONTROL BLOCK 1250 11113 1747 TAD I WNFCBP /GET CURRENT STATUS 1251 11114 0014 AND P0007 /SAVE ONLY STATUS BITS 1252 11115 1272 TAD WND11 /ADD IN POINTER TO CURRENT RETRIEVAL WINDOW 1253 11116 3747 DCA I WNFCBP /AND SAVE 1254 11117 5720 JMP I .+1 /GO SET #JSIOTC# BEFORE EXITING 1255 11120 2050 INF6 1256 1257 11121 6221 WND6, CFLD /CHANGE TO CURRENT FIELD 1258 11122 7300 CLA CLL 1259 11123 1353 TAD WNSEGC /SEGMENT TO GET INTO IN CORE WINDOW 1260 11124 4454 JMS I WND201 /DIVIDE BY 7 1261 11125 7040 CMA 1262 11126 3352 DCA WNDCNT /WINDOW NUMBER TO GET INTO CORE 1263 11127 2350 ISZ WNENTP 1264 11130 1750 TAD I WNENTP /UFD ENTRY ADDRESS OF OPEN FILE 1265 11131 3334 DCA WND5 1266 11132 1351 TAD WNRETP /RETRIEVAL INFORMATION POINTER 1267 11133 4441 JMS I GE01 /GET ENTRY INTO CORE /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 30 1268 11134 0000 WND5, 0 1269 11135 1014 TAD P0007 1270 11136 5262 JMP WND10 1271 1272 /ROUTINE TO MULTIPLY A NUMBER BY 7 1273 1274 WNDSCT, 1275 11137 0000 WND30, 0 1276 11140 3110 DCA CFH 1277 11141 1110 TAD CFH 1278 11142 7104 CLL RAL 1279 11143 1110 TAD CFH 1280 11144 7104 CLL RAL 1281 11145 1110 TAD CFH 1282 11146 5737 JMP I WND30 1283 1284 11147 0000 WNFCBP, 0 1285 11150 0000 WNENTP, 0 1286 11151 0000 WNRETP, 0 1287 11152 0000 WNDCNT, 0 1288 11153 0000 WNSEGC, 0 1289 11154 7773 WNDCCT, 7773 1290 11155 0000 WNCURS, 0 1291 11156 0177 C0177, 177 1292 1293 1294 IODISP, 1295 11157 3600 ASD1 1296 11160 2747 REL1 1297 11161 4000 REN0 1298 11162 0377 OPN0 1299 11163 0600 CLS0 1300 11164 1000 WND0 1301 11165 0705 PRT0 1302 11166 1000 WND0 1303 11167 1200 CRF0 1304 11170 1400 EXT0 1305 11171 1600 RED0 1306 11172 2000 INF0 1307 11173 2103 LGI0 1308 11174 3065 LGO0 1309 11175 0743 WHO0 1310 11176 4041 SEGS0 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 31 1311 1312 1200 *1200 1313 1314 /ROUTINE TO CREATE A NEW FILE 1315 1316 11200 1123 CRF0, TAD FIOSTK+1 1317 11201 7650 SNA CLA 1318 11202 5356 JMP CRF30 1319 11203 4464 JMS I JBLD0 1320 11204 4452 JMS I UTS01 /SEARCH THE UFD TABLE 1321 11205 5471 JMP I DIRBAD /***************DEBUG************** 1322 11206 4456 JMS I BLDP1 /BUILD A PTR TO RETTBL 1323 11207 3122 DCA FIOSTK /MAKE A LINKAGE FOR DIRECTORY SEARCH 1324 11210 4511 JMS I ACC01 /IS IT ACCOUNT 1? 1325 11211 7040 CMA /YES; MAKE IT A ONE WORD SEARCH 1326 11212 4440 JMS I DS01 /SEARCH THE DIRECTORY FOR THIS NAME 1327 11213 0122 FIOSTK /POINTER TO SEARCH PARAMETERS 1328 11214 5240 JMP CRF2 /COULD NOT FIND THIS NAME, CONTINUE 1329 11215 3376 DCA CRBUFP /FOUND A FILE OF THIS NAME IN UFD. PTR INTO CRBUFP 1330 11216 4511 JMS I ACC01 /SEE IF THIS IS ACCOUNT 1 1331 11217 5356 JMP CRF30 /CAN'T DELETE UFD'S AS THOUGH THEY ARE FILES 1332 11220 1405 TAD I ZDS1 /POINTER TO "DS1"=ADDR WITHIN UFD WHERE THIS FILE NAME'S BLOCK IS 1333 11221 3224 DCA CRF11 /UFD ADDRESS OF DIRECTORY ENTRY 1334 11222 1122 TAD FIOSTK 1335 11223 4772 JMS I CRENS /SEARCH ENT TABLE FOR ACCESSES TO THIS FILE 1336 11224 0000 CRF11, 0 /UFD ADDR OF DIRECTORY ENTRY 1337 11225 5357 JMP CRF10 /ERROR, FILE IS OPEN 1338 /COMES HERE IF A FILE BY THIS NAME ALREADY EXISTS, BUT NO ONE HAS OPENED IT 1339 11226 1224 TAD CRF11 1340 11227 3771 DCA I CRGD11 /GD1 1341 11230 1122 TAD FIOSTK 1342 11231 3023 DCA GDRETP 1343 11232 1376 TAD CRBUFP /PTR TO WHERE IN CORE BUFFER THE UFD BLOCK FOR THIS FILE IS 1344 11233 4773 JMS I SAVCRA /DELETE THE EXISTING FILE OF THIS NAME 1345 11234 4440 JMS I DS01 /SEARCH THE UFD FOR AN EXISTING FILE OF THE SAME NAME 1346 11235 0122 FIOSTK 1347 11236 7410 SKP /NONE THERE, SO OKAY TO CREATE ONE 1348 11237 5471 JMP I DIRBAD /**************DEBUG ONLY********** /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 32 1349 1350 /NOW ALL SET TO CREATE THE FILE. TO DO THIS, WE NEED TWO BLOCKS OF 1351 /THE UFD -- ONE FOR A NAME BLOCK AND THE SECOND FOR A FILE RETRIEVAL INFORMATION 1352 /BLOCK. THESE BLOCKS ARE OBTAINED BY TWO CALLS TO DE0. AFTER THE FIRST, 1353 /A DUMMY 7777 IS PUT IN THE FOUND BLOCK TO PREVENT THE SECOND CALL 1354 /TO DE0 FROM FINDING THE SAME BLOCK. IF BOTH BLOCKS CANNOT BE OBTAINED, 1355 /THE CREATE CANNOT BE EXECUTED. 1356 11240 3324 CRF2, DCA CRLINK /ADDR OF LINK WORD OF LAST ENTRY IN UFD CHAIN 1357 11241 2107 ISZ UTPRNU /POINTS AT LOGIN DISK QUOTA 1358 11242 1507 TAD I UTPRNU /-SEGMENTS ALLOWED WHILE LOGGED IN 1359 11243 1120 TAD SEGLIM /PLUS NUMBER OF SEGMENTS FOUND WHILE SEARCHING HIS/HER DIRECTORY 1360 11244 2107 ISZ UTPRNU /POINT AT HOLD REG FOR SEGMENT COUNT 1361 11245 7700 SMA CLA /IS HE ALLOWED ONE MORE? 1362 11246 5351 JMP CRF1 /NO; TELL HIM/HER DIRECTORY FULL 1363 11247 1122 TAD FIOSTK /POINTER TO RETRIEVAL INFORMATION 1364 11250 4437 JMS I DE01 /FIND AN EMPTY DIRECTORY ENTRY 1365 11251 5351 JMP CRF1 /ERROR, NO AVAILABLE ENTRIES 1366 11252 3365 DCA CRF4 /ADDRESS OF THIS ENTRY 1367 11253 4362 JMS CRF40 /GET THIS ENTRY INTO CORE 1368 11254 7240 CLA CMA 1369 11255 3776 DCA I CRBUFP /SIMULATE A USED ENTRY 1370 11256 3026 DCA BUFMOD /SCHEDULE WRITE 1371 11257 1122 TAD FIOSTK 1372 11260 4437 JMS I DE01 /FIND ANOTHER ENTRY 1373 11261 5346 JMP CRF51 /ERROR 1374 11262 3265 DCA CRF3 1375 11263 1122 TAD FIOSTK 1376 11264 4441 JMS I GE01 /MAKE SURE SECOND ENTRY IS IN CORE 1377 11265 0000 CRF3, 0 1378 11266 3010 DCA INDEX 1379 11267 4446 JMS I SATL1 /FIND A FREE SEGMENT IN THE SAT 1380 11270 7450 SNA 1381 11271 5343 JMP CRF20 /COULD NOT FIND A FREE SEGMENT /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 33 1382 1383 /AT THIS POINT, WE HAVE A DISC SEGMENT AND TWO BLOCKS FROM THE 1384 /UFD. THIS IS ALL THAT IS NEEDED, SO GO AHEAD AND EXECUTE THE CREATE 1385 11272 3224 DCA CRF11 /SAVE SEGMENT NUMBER 1386 11273 1224 TAD CRF11 1387 11274 3410 DCA I INDEX /PUT IT IN THE FIRST BLOCK OF RETRIEVAL 1388 11275 3026 DCA BUFMOD /SCHEDULE WRITE 1389 11276 4362 JMS CRF40 /GET FIRST FOUND ENTRY INTO CORE 1390 11277 1123 TAD FIOSTK+1 /TRANSFER FILE NAME INTO DIRECTORY ENTRY 1391 11300 3776 DCA I CRBUFP 1392 11301 1376 TAD CRBUFP /MOVE POINTER TO AUTO-INDEX 1393 11302 3010 DCA INDEX 1394 11303 1124 TAD FIOSTK+2 1395 11304 3410 DCA I INDEX 1396 11305 1125 TAD FIOSTK+3 1397 11306 3410 DCA I INDEX 1398 11307 3410 DCA I INDEX /ZERO LINK (THIS IS THE LAST FILE) 1399 11310 1370 TAD CRPROT /PICK UP PROTECTION BITS 1400 11311 3410 DCA I INDEX /STORE INITIAL PROTECTION CODE 1401 11312 4775 JMS I CRFUFA /GO SEE IF WE'RE CREATING A NEW ACCOUNT 1402 11313 6201 CDF /CDF FIELD 0 1403 11314 1566 TAD I DATE /GLOBAL TO DATE 1404 11315 6221 CFLD /CHANGE TO CURRENT FIELD 1405 11316 3410 CRFUFR, DCA I INDEX /STORE DATE OF CREATION 1406 11317 1265 TAD CRF3 /POINTER TO RETRIEVAL 1407 11320 3410 DCA I INDEX /SET UP PTR TO RETRIEVAL INFORMATION 1408 11321 3026 DCA BUFMOD /SCHEDULE WRITE 1409 11322 1122 TAD FIOSTK /GET LAST ENTRY ON STRING INTO CORE 1410 11323 4441 JMS I GE01 1411 11324 0000 CRLINK, 0 1412 11325 3376 DCA CRBUFP /PTR TO WHERE THE PRESENT LAST ENTRY IS 1413 11326 1365 TAD CRF4 1414 11327 3776 DCA I CRBUFP 1415 11330 3026 DCA BUFMOD /SCHEDULE WRITE 1416 11331 4511 JMS I ACC01 /IS HE CREATING A NEW UFD? 1417 11332 5340 JMP CRFUFZ /YES 1418 11333 7001 IAC 1419 11334 1120 CRFSEG, TAD SEGLIM /STORE SEGMENT COUNT IN THE UFDTBL 1420 11335 3507 DCA I UTPRNU 1421 11336 5737 JMP I .+1 /REMEMBER TO WRITE OUT THE TABLES 1422 11337 3165 TABOUT 1423 1424 11340 1224 CRFUFZ, TAD CRF11 1425 11341 4774 JMS I SCL01 /WRITE OUT DIRECTORY BLOCK & CLEAR NEW UFD BLBOCK 1426 11342 5455 JMP I FIEXIT /DON'T MODIFY THE MFD'S ENTRY IN THE UFDTBL /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 34 1427 1428 11343 7132 CRF20, STL RTR /DISK FULL 1429 11344 7132 STL RTR 1430 11345 3020 DCA FIUSAC /SAVE PARTIAL ERROR CODE 1431 11346 4362 CRF51, JMS CRF40 /GET FIRST ENTRY BACK AGAIN 1432 11347 3776 DCA I CRBUFP /ZERO OUT THE -1 WE PUT THERE 1433 11350 3026 DCA BUFMOD /SCHEDULE WRITE 1434 11351 7332 CRF1, CLA CLL CML RTR 1435 11352 7130 CLL CML RAR 1436 11353 1020 TAD FIUSAC /GET PARTIAL ERROR CODE 1437 11354 3020 DCA FIUSAC /SAVE ERROR CODE; EITHER DISK FULL OR DIRECTORY FULL 1438 11355 5334 JMP CRFSEG /GO SAVE SEGMENT COUNT ANYWAY 1439 11356 7332 CRF30, CLA CLL CML RTR 1440 11357 1104 CRF10, TAD C4400 1441 11360 3020 DCA FIUSAC /SAVE ERROR CODE; EITHER FILE IN USE OR BAD FILE NAME 1442 11361 5455 JMP I FIEXIT 1443 1444 11362 0000 CRF40, 0 1445 11363 1122 TAD FIOSTK 1446 11364 4441 JMS I GE01 1447 11365 0000 CRF4, 0 1448 11366 3376 DCA CRBUFP 1449 11367 5762 JMP I CRF40 1450 1451 1452 11370 0012 CRPROT, 12 1453 11371 0347 CRGD11, GD1 1454 11372 2330 CRENS, ENS0 1455 11373 3540 SAVCRA, SAVCRE 1456 11374 1755 SCL01, SCL0 1457 11375 3556 CRFUFA, CRFUFD 1458 11376 0000 CRBUFP, 0 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 35 1459 1460 /ROUTINE TO EXTEND A FILE 1461 1462 1400 *1400 1463 1464 11400 4331 EXT0, JMS EXT1 /MAKE SURE IT'S OKAY TO EXTEND THIS FILE 1465 11401 1014 TAD P0007 /...EXT1 RETURNS WITH PTR TO NAME BLOCK FOR THIS FILE 1466 11402 3325 DCA EXBUFP /SAVE POINTER TO RETRIEVAL CHAIN 1467 11403 4722 JMS I EXTQUA /CHECK THE DISK QUOTA FOR THIS USER 1468 /NOW TRACE THROUGH TO LAST RETRIEVAL INFORMATION BLOCK FOR THIS FILE 1469 11404 1725 EXT4, TAD I EXBUFP 1470 11405 7450 SNA /END OF CHAIN? 1471 11406 5214 JMP EXT3 /YES 1472 11407 3326 DCA EXWNDP /WINDOW POINTER 1473 11410 1326 TAD EXWNDP 1474 11411 4306 JMS EXGE0 /GET WINDOW INTO CORE 1475 11412 3325 DCA EXBUFP /SAVE POINTER TO NEXT RETRIEVAL WINDOW 1476 11413 5204 JMP EXT4 /KEEP LOOKING FOR END 1477 1478 11414 1105 EXT3, TAD C7771 1479 11415 3331 DCA EXT1 /7 SEGS PER WINDOW 1480 11416 2325 EXT5, ISZ EXBUFP 1481 11417 1725 TAD I EXBUFP /PICK UP ENTRY IN WINDOW 1482 11420 7650 SNA CLA /IS IT THE FIRST FREE? 1483 11421 5302 JMP EXT7 /YES, FIND A SEGMENT 1484 11422 2331 ISZ EXT1 /END OF WINDOW? 1485 11423 5216 JMP EXT5 /NO, KEEP LOOKING 1486 11424 1023 EXT9, TAD GDRETP /RETRIEVAL POINTER 1487 11425 4437 JMS I DE01 /FIND AN EMPTY ENTRY 1488 11426 5261 JMP EXT20 /PARTIALLY SATISFIED 1489 11427 3330 DCA EXNFRE /FREE SEGMENT ADDRESS 1490 11430 1326 TAD EXWNDP /CURRENT WINDOW POINTER 1491 11431 4306 JMS EXGE0 /GET IT INTO CORE 1492 11432 3325 DCA EXBUFP 1493 11433 4446 JMS I SATL1 /GET A FREE DISK SEGMENT FOR THE NEXT WINDOW 1494 11434 7450 SNA 1495 11435 5261 JMP EXT20 /THERE ARE NONE; AVOID LINKING TO NEXT WINDOW 1496 11436 3324 DCA EXPROP /SAVE UNTIL WINDOWS ARE LINKED UP 1497 11437 1330 TAD EXNFRE /NEXT FREE WINDOW 1498 11440 3725 DCA I EXBUFP /LINK IT ONTO CHAIN 1499 11441 3026 DCA BUFMOD /SCHEDULE WRITE 1500 11442 1330 TAD EXNFRE 1501 11443 3326 DCA EXWNDP /UPDATE CURRENT WINDOW POINTER 1502 11444 1326 TAD EXWNDP 1503 11445 4306 JMS EXGE0 /GET NEW WINDOW INTO CORE 1504 11446 7001 IAC 1505 11447 3325 DCA EXBUFP /POINTER TO FIRST ENTRY OF NEW WINDOW 1506 11450 1105 TAD C7771 /ALLOW 7 ENTRIES IN NEW WINDOW 1507 11451 3331 DCA EXT1 1508 11452 1324 TAD EXPROP /GET DISK SEGMENT /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 36 1509 1510 11453 3725 EXT12, DCA I EXBUFP /STORE SEGMENT IN RETRIEVAL WINDOW 1511 11454 3026 DCA BUFMOD /SCHEDULE WRITE 1512 11455 2507 ISZ I EXQ1 /INCREMENT TOTAL COUNT IN UFDTBL 1513 11456 2325 ISZ EXBUFP /INCR WINDOW POINTER 1514 11457 2327 ISZ EXSEGC /HAVE WE EXTENDED FAR ENOUGH? 1515 11460 5277 JMP EXT6 /NO 1516 11461 1327 EXT20, TAD EXSEGC 1517 11462 7041 CIA 1518 11463 3020 DCA FIUSAC /NUMBER OF SEGMENTS WE FAILED TO FIND 1519 11464 1123 TAD FIOSTK+1 /REQUEST IS SATISFIED 1520 11465 4442 JMS I GD01 /GET DIRECTORY ENTRY INTO CORE 1521 11466 1101 TAD C0005 1522 11467 3325 DCA EXBUFP /POINTER TO SEGMENT COUNT 1523 11470 1124 TAD FIOSTK+2 /NUMBER OF WORDS TO BE ADDED 1524 11471 1725 TAD I EXBUFP /NUMBER ALREADY IN FILE 1525 11472 1327 TAD EXSEGC /MINUS NUMBER WE FAILED TO GET 1526 11473 3725 DCA I EXBUFP /UPDATE ENTRY 1527 11474 3026 DCA BUFMOD /SCHEDULE WRITE 1528 11475 5676 JMP I .+1 /EXIT AND WRITE OUT TABLES 1529 11476 3165 TABOUT 1530 1531 11477 2331 EXT6, ISZ EXT1 /END OF CURRENT WINDOW? 1532 11500 7410 SKP /NOT YET 1533 11501 5224 JMP EXT9 /YES, TRY LINKING TO ANOTHER 1534 11502 4446 EXT7, JMS I SATL1 /GET A FREE SEGMENT FROM SAT 1535 11503 7450 SNA 1536 11504 5261 JMP EXT20 /PARTIALLY SATISFIED 1537 11505 5253 JMP EXT12 /SAVE NEW SEGMENT 1538 11506 0000 EXGE0, 0 /GET WORD OF THIS UFD INTO CORE 1539 11507 3312 DCA EXGE1 1540 11510 1023 TAD GDRETP 1541 11511 4441 JMS I GE01 1542 11512 0000 EXGE1, 0 1543 11513 5706 JMP I EXGE0 1544 1545 11514 1104 EXT30, TAD C4400 1546 11515 5320 JMP EXT10+2 1547 1548 11516 7130 EXT10, CLL CML RAR 1549 11517 7130 CLL CML RAR 1550 11520 3020 DCA FIUSAC 1551 11521 5455 JMP I FIEXIT 1552 1553 11522 5242 EXTQUA, EXTQU0 1554 11523 0000 EXFCBP, 0 1555 11524 0000 EXPROP, 0 1556 11525 0000 EXBUFP, 0 1557 11526 0000 EXWNDP, 0 1558 11527 0000 EXSEGC, 0 1559 11530 0000 EXNFRE, 0 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 37 1560 1561 /ROUTINE TO SET UP TO ALTER A FILE (BY EITHER EXTENDING IT OR 1562 /REDUCING IT). CHECK PROTECTION CODE TO SEE IF THIS IS ALLOWED. MAKE SURE 1563 /NO ONE ELSE HAS THIS FILE OPEN. JMP TO ERROR EXIT ON EITHER OF THESE CON- 1564 /DITIONS. IF ALL IS OKAY. RETURN WITH PTR TO UFD NAME BLOCK ENTRY 1565 11531 0000 EXT1, 0 1566 11532 4466 JMS I IFN01 /MASK OFF BITS 0-9 OF FIOSTK+1 1567 11533 1123 TAD FIOSTK+1 /INTERNAL FILE NUMBER 1568 11534 4404 JMS I LNK01 /GET PTR TO APPROPRIATE FILE CONTROL BLOCK 1569 11535 7450 SNA 1570 11536 5317 JMP EXT10+1 /ERROR, FILE NOT OPEN 1571 11537 3323 DCA EXFCBP /FILE CONTROL BLOCK POINTER 1572 11540 4511 JMS I ACC01 /AS HE UNDER ACCOUNT1? 1573 11541 5353 JMP EXT2 /YES; SKIP PROTECTION CHECK 1574 11542 1017 TAD FILPRP /GLOBAL TO "FILPRO" 1575 11543 1323 TAD EXFCBP 1576 11544 3324 DCA EXPROP /POINTER TO PROTECTION BIT 1577 11545 6211 DATFLD /CDF FIELD 1 1578 11546 1724 TAD I EXPROP /PICK UP PROTECTION BIT 1579 11547 6221 CFLD /CHANGE TO CURRENT FIELD 1580 11550 0015 AND P0004 /STRAIN OFF ANY EXTRANEOUS BITS 1581 11551 7640 SZA CLA 1582 11552 5316 JMP EXT10 /WRITE PROTECTED 1583 11553 1123 EXT2, TAD FIOSTK+1 /INTERNAL FILE NUMBER 1584 11554 4442 JMS I GD01 /GET DIRECTORY ENTRY INTO CORE 1585 11555 3121 DCA REL6 /POINTS TO WHERE UFD NAME BLOCK IS IN CORE 1586 11556 4457 JMS I ENR01 /IS THIS THE ONLY USER WHO HAS THIS FILE OPEN? 1587 11557 5314 JMP EXT30 /NO, SO ABORT AND RETURN ERROR CODE 1588 11560 1124 TAD FIOSTK+2 /ARE ANY SEGMENTS INVOLVED? 1589 11561 7450 SNA 1590 11562 5455 JMP I FIEXIT /NO, NOTHING TO DO THEN 1591 11563 7041 CIA 1592 11564 3327 DCA EXSEGC /SAVE NEGATIVE COUNT 1593 11565 6211 DATFLD 1594 11566 1723 TAD I EXFCBP /GET POINTER TO CURRENT WINDOW 1595 11567 3324 DCA EXPROP 1596 11570 7001 IAC 1597 11571 3724 DCA I EXPROP /INVALIDATE THE WINDOW 1598 11572 6221 CFLD 1599 11573 1121 TAD REL6 1600 11574 5731 JMP I EXT1 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 38 1601 1602 /ROUTINE TO REDUCE A FILE 1603 1604 1600 *1600 1605 1606 11600 4647 RED0, JMS I EXT11 /MAKE SURE IT'S OKAY TO REDUCE THIS FILE 1607 11601 3253 DCA REBUFP /...IF OKAY, RETURNS WITH PTR TO FILE NAME BLOCK 1608 11602 4511 JMS I ACC01 /IS HE UNDER ACCOUNT 1? 1609 11603 4652 JMS I REDUFD /SEE IF HE'S REDUCING A UFD 1610 11604 1253 TAD REBUFP 1611 11605 1101 TAD C0005 1612 11606 3375 DCA RELINK /NOW POINTS TO NUMBER OF SEGMENTS PRESENTLY IN FILE 1613 11607 1124 TAD FIOSTK+2 /SEGMENTS TO BE REMOVED 1614 11610 7510 SPA /IS IT NEGATIVE? 1615 11611 5216 JMP RED5 /YES; DELETE THE ENTIRE FILE 1616 11612 7041 CIA 1617 11613 1775 TAD I RELINK 1618 11614 7540 SMA SZA /DELETE THE FILE? 1619 11615 5224 JMP RED6 /NO, REDUCE IT 1620 11616 7300 RED5, CLA CLL /YES, WIPE IT OUT AND CLOSE 1621 11617 1253 TAD REBUFP 1622 11620 4254 JMS RED1 /WIPE OUT THE FILE NAME BLOCK FROM THE UFD 1623 11621 1123 TAD FIOSTK+1 /INTERNAL FILE NUMBER 1624 11622 4453 JMS I CL01 /CLOSE THIS FILE SINCE IT NO LONGER EXISTS 1625 11623 5455 JMP I FIEXIT 1626 11624 3775 RED6, DCA I RELINK /UPDATE SEGMENT COUNT 1627 11625 3026 DCA BUFMOD /SCHEDULE WRITE 1628 11626 1775 TAD I RELINK 1629 11627 3110 DCA CFH 1630 11630 2375 ISZ RELINK 1631 11631 2375 ISZ RELINK 1632 11632 1775 TAD I RELINK 1633 11633 3375 DCA RELINK /POINTER TO FIRST WINDOW ON CHAIN 1634 11634 1110 TAD CFH 1635 11635 4240 JMS RED40 /WIPE OUT REST OF FILE 1636 11636 5455 JMP I FIEXIT 1637 1638 11637 0347 REDGD1, GD1 1639 1640 11640 0000 RED40, 0 1641 11641 4454 JMS I WND201 /DIVIDE BY 7 1642 11642 7040 CMA 1643 11643 3121 DCA REWNDC /NUMBER OF WHOLE WINDOWS WHICH ARE TO REMAIN 1644 11644 1375 TAD RELINK /GET POINTER TO FIRST RETRIEVAL WINDOW 1645 11645 4651 JMS I RED302 /ROUTINE TO DO ACTUAL REDUCTION 1646 11646 5640 JMP I RED40 1647 1648 11647 1531 EXT11, EXT1 1649 11650 4071 LINK01, LINK0 1650 11651 3652 RED302, RED30 1651 11652 5334 REDUFD, REDUF0 1652 11653 0000 REBUFP, 0 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 39 1653 1654 /ROUTINE TO DELETE A FILE 1655 1656 UFBUFP, 1657 11654 0000 RED1, 0 1658 11655 3253 DCA REBUFP /PTR TO THE UFD ENTRY FOR THE FILE 1659 11656 1253 TAD REBUFP 1660 11657 1075 TAD P0003 1661 11660 3375 DCA RELINK /LINK TO NEXT FILE NAME IN THIS UFD 1662 11661 1775 TAD I RELINK 1663 11662 3303 DCA RED3 1664 11663 1637 TAD I REDGD1 /UFD ADDR OF THIS DIRECTORY ENTRY 1665 11664 3302 DCA RED4 1666 11665 1253 TAD REBUFP 1667 11666 1014 TAD P0007 1668 11667 3375 DCA RELINK /NOW POINTS TO A RETRIEVAL BLOCK FOR THIS FILE 1669 11670 1775 TAD I RELINK 1670 11671 3375 DCA RELINK 1671 11672 3653 RED2, DCA I REBUFP /CLEAR OUT FIRST WORD OF ENTRY 1672 11673 2253 ISZ REBUFP 1673 11674 1253 TAD REBUFP 1674 11675 0014 AND P0007 1675 11676 7640 SZA CLA /END OF CURRENT WINDOW? 1676 11677 5272 JMP RED2 /NO, KEEP CLEARING 1677 11700 3026 DCA BUFMOD /SCHEDULE WRITE 1678 11701 4650 JMS I LINK01 1679 11702 0000 RED4, 0 /UFD ADDR OF THIS DIRECTORY ENTRY 1680 11703 0000 RED3, 0 /UFD ADDR OF DIRECTORY ENTRY WHICH IS NEXT IN THE CHAIN 1681 11704 4240 JMS RED40 /GO WIPE OUT ACTUAL FILE 1682 11705 5654 JMP I RED1 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 40 1683 1684 /ROUTINE TO EXTEND A UFD 1685 1686 /CALLING SEQUENCE: 1687 / TAD (RETRIEVAL POINTER) 1688 / JMS UFD0 1689 / ERROR RETURN 1690 / NORMAL RETURN 1691 1692 11706 0000 UFD0, 0 1693 11707 3375 DCA UFRETP /RETRIEVAL POINTER 1694 11710 1105 TAD C7771 1695 11711 3110 DCA CFH /COUNTER FOR OVERSIZE UFD 1696 /NOW SCAN DOWN THE UFD'S FILE RETRIEVAL BLOCK 1697 11712 1775 UFD2, TAD I UFRETP 1698 11713 7650 SNA CLA 1699 11714 5321 JMP UFD1 /FOUND THE END OF THE LIST OF SEGMENT NUMBERS 1700 11715 2375 ISZ UFRETP /POINT TO NEXT SEGMENT NUMBER 1701 11716 2110 ISZ CFH /UFD ALREADY MAXIMUM SIZE? 1702 11717 5312 JMP UFD2 /NO, LOOK AT NEXT WORD 1703 11720 5706 JMP I UFD0 /YES, ERROR RETURN 1704 1705 /COMES HERE WHEN IT HAS FOUND THE END OF THE RETRIEVAL BLOCK'S LIST OF SEGMENTS 1706 11721 4446 UFD1, JMS I SATL1 /GET A FREE SEGMENT FROM SAT 1707 11722 7450 SNA 1708 11723 5706 JMP I UFD0 /NO MORE FREE SEGMENTS 1709 11724 3775 DCA I UFRETP /ADD TO RETRIEVAL INFORMATION 1710 11725 1375 TAD UFRETP 1711 11726 4753 JMS I ENS31 /CONVERT ABS RETTBL PTR TO A RELATIVE ENTRY NUMBER 1712 11727 7106 CLL RTL /...TIMES FOUR 1713 11730 1032 TAD UFDTBL /...PLUS BASE ADDR OF UFDTBL 1714 11731 3110 DCA CFH /POINTER TO PROJ,PROG NUMBER OF FILE OWNER 1715 11732 1510 TAD I CFH /PICK UP PROJ,PROG NUMBER 1716 11733 4754 JMS I UFO61 /GO GET THE RETRIEVAL INFO FOR THIS GUY'S UFD INTO CORE 1717 11734 5471 JMP I DIRBAD /*************DEBUG ONLY*********** 1718 11735 3254 DCA UFBUFP /PTR TO RETRIEVAL INFORMATION 1719 11736 2254 ISZ UFBUFP 1720 11737 1654 TAD I UFBUFP 1721 11740 7640 SZA CLA /SCAN TO END OF LIST OF SEGMENT NUMBERS 1722 11741 5336 JMP .-3 1723 11742 1775 TAD I UFRETP /GET NUMBER OF NEW SEGMENT 1724 11743 3654 DCA I UFBUFP /PUT IT IN RETRIEVAL BLOCK LIST 1725 11744 3026 DCA BUFMOD /SCHEDULE WRITE 1726 11745 7240 STA 1727 11746 3030 DCA TABSTA /SET TABLE STATUS TO CHANGE 1728 11747 1775 TAD I UFRETP /NEW SEGMENT NUMBER 1729 11750 4355 JMS SCL0 /ZERO OUT THE NEW SEGMENT 1730 11751 2306 ISZ UFD0 /SET UP NORMAL RETURN 1731 11752 5706 JMP I UFD0 1732 1733 11753 3567 ENS31, ENS3 1734 11754 3260 UFO61, UFO6 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 41 1735 1736 /ROUTINE TO ZERO OUT A DISC SEGMENT 1737 /IT ZEROES THE CORE BUFFER THEN EXECUTES A CALL 1738 /TO RD301 (THE ACTUAL READ NEVER HAPPENS). 1739 /THUS, THE SYSTEM THINKS THAT THE SEGMENT BEING 1740 /CLEARED IS ACTUALLY IN CORE. IT WILL BE WRITTEN OUT LATER. 1741 11755 0000 SCL0, 0 1742 11756 3375 DCA UFRETP /SEGMENT NUMBER 1743 11757 4443 JMS I WRT1 /MAKE SURE THE BUFFER IS EMPTY 1744 11760 1377 TAD P7400 1745 11761 3110 DCA CFH /SET UP COUNTER FOR CLEARING SEGMENT 1746 11762 1035 TAD BUFFER 1747 11763 3254 DCA UFBUFP 1748 11764 3654 UFD3, DCA I UFBUFP /START TO CLEAR BUFFER AREA 1749 11765 2254 ISZ UFBUFP 1750 11766 2110 ISZ CFH 1751 11767 5364 JMP UFD3 1752 11770 7240 STA 1753 11771 1375 TAD UFRETP /SEGMENT NUMBER 1754 11772 4776 JMS I SCL11 /NOW FAKE A READ 1755 11773 3026 DCA BUFMOD /SCHEDULE WRITE 1756 11774 5755 JMP I SCL0 1757 RELINK, 1758 11775 0000 UFRETP, 0 1759 11776 3372 SCL11, SCL1 1760 11777 7400 P7400, 7400 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 42 1761 1762 1763 /ROUTINE TO PROVIDE FILE INFORMATION 1764 1765 2000 *2000 1766 1767 12000 4466 INF0, JMS I IFN01 /GET INTERNAL FILE NUMBER IN FIOSTK+1 1768 12001 1123 TAD FIOSTK+1 /INTERNAL FILE NUMBER 1769 12002 4463 JMS I EBLD0 1770 12003 3110 DCA CFH /RELATIVE POINTER TO UFD RETRIEVAL INFORMATION 1771 12004 1510 TAD I CFH /GET PTR TO RETTBL OUT OF ENTTBL 1772 12005 7450 SNA /DOES IT EXIST? 1773 12006 5267 JMP INF1 /NO, SO FILE IS NOT OPEN 1774 12007 7041 CIA 1775 12010 7146 CLL CMA RTL /SUBTRACT ONE; MULTIPLY BY FOUR 1776 12011 1032 TAD UFDTBL 1777 12012 3271 DCA INUFDP /POINTER TO USER PROJ,PROG NUMBER 1778 12013 1671 TAD I INUFDP 1779 12014 3124 DCA FIOSTK+2 /SET UP LINKAGE FOR GD0 1780 12015 1123 TAD FIOSTK+1 /INTERNAL FILE NUMBER 1781 12016 4442 JMS I GD01 /GET DIRECTORY ENTRY FOR THIS FILE INTO CORE 1782 12017 7041 CIA 1783 12020 7040 CMA 1784 12021 3010 DCA INDEX /SET UP INDEX REGISTER FOR TRANSFER 1785 12022 1410 TAD I INDEX /OF NAME AND OTHER DIRECTORY INFORMATION 1786 12023 3125 DCA FIOSTK+3 1787 12024 1410 TAD I INDEX 1788 12025 3126 DCA FIOSTK+4 1789 12026 1410 TAD I INDEX 1790 12027 3127 DCA FIOSTK+5 1791 12030 2010 ISZ INDEX 1792 12031 1410 TAD I INDEX 1793 12032 3130 DCA FIOSTK+6 1794 12033 1410 TAD I INDEX 1795 12034 3131 DCA FIOSTK+7 1796 12035 6211 INF5, DATFLD 1797 12036 1422 TAD I FIOPTR /PICK UP JOBLNK WORD FROM JOB STATUS BLOCK 1798 12037 3246 DCA INF4 /DESTINATION IN FIELD 0 1799 12040 6221 CFLD /CHANGE TO PRESENT FIELD 1800 12041 6202 6202 /CIF FIELD 0 1801 12042 4567 BLT /MOVE FIOSTK INFORMATION INTO IOT PARAMETER BLOCK 1802 12043 6221 6221 /SOURCE FIELD 1803 12044 0122 FIOSTK /SOURCE 1804 12045 6211 DATFLD /DESTINATION FIELD 1805 12046 0000 INF4, 0 /DESTINATION 1806 12047 7770 -10 /WORD COUNT /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 43 1807 1808 12050 6201 INF6, CDF 1809 12051 1673 TAD I OURFLD 1810 12052 0073 AND C0200 1811 12053 7640 SZA CLA 1812 12054 5455 JMP I FIEXIT /WE WERE CALLED BY SI - DON'T SET JSIOTC OR WE'LL GAG 1813 12055 6211 DATFLD 1814 12056 1561 TAD I JOBDAT /GLOBAL TO "JOBDAT" 1815 12057 7001 IAC 1816 12060 3272 DCA INSPTR /NOW POINTS TO STATUS WORD 1817 12061 1274 TAD INIOTC /JSIOTC 1818 12062 7040 CMA 1819 12063 0672 AND I INSPTR /SET JSIOTC TO INDICATE THAT FIP 1820 12064 1274 TAD INIOTC /...IS RETURNING INFORMATION IN THE IOT PAR. BLOCK 1821 12065 3672 DCA I INSPTR 1822 12066 5455 JMP I FIEXIT /EXIT 1823 1824 12067 3124 INF1, DCA FIOSTK+2 1825 12070 5235 JMP INF5 1826 1827 12071 0000 INUFDP, 0 1828 12072 0000 INSPTR, 0 1829 12073 7002 OURFLD, CORTBL+1 1830 12074 0040 INIOTC, 40 1831 1832 1833 /ROUTINE TO SKIP IF CALLING USER IS NOT SYSTEM MANAGER 1834 12075 0000 ACT01, 0 1835 12076 4464 JMS I JBLD0 /GET PPN 1836 12077 7110 CLL RAR 1837 12100 7640 SZA CLA /IS IN ACCOUNT 1? 1838 12101 2275 ISZ ACT01 /NO; SKIP ON RETURN 1839 12102 5675 JMP I ACT01 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 44 1840 1841 /LOGIN ROUTINE 1842 1843 12103 1033 LGI0, TAD RETTBL /MFD RETRIEVAL IS IN ENTRY 0 1844 12104 3123 DCA FIOSTK+1 /SET UP PTR TO RETRIEVAL INFORMATION CONTAINED IN RETTBL 1845 12105 1124 TAD FIOSTK+2 /ACCOUNT #0 1846 12106 7650 SNA CLA 1847 12107 5344 JMP LGI20 /UNAUTHORIZED ACCOUNT 1848 12110 4440 JMS I DS01 /SEARCH THE MFD (AC=0 TO INDICATE 3-WORD SEARCH) 1849 12111 0123 FIOSTK+1 /ADDR OF PTR TO RETRIEVAL INFORMATION OF DIRECTORY TO BE SEARCHED 1850 12112 5344 JMP LGI20 /COULD NOT FIND ENTRY IN MFD 1851 12113 3350 DCA LGMFDP /OK TO LOG IN - POINTER TO DIRECTORY ENTRY IS IN ACC. 1852 12114 1124 TAD FIOSTK+2 /PROJ,PROG NUMBER 1853 12115 4452 JMS I UTS01 /SEARCH THE UFD TABLE 1854 12116 7410 SKP /THIS PROJ,PROG NUMBER NOT THERE 1855 12117 5323 JMP LGI1 /UFD ALREADY ON TABLE - RETURNS WITH ITS RELATIVE POSITION IN TABLE 1856 12120 1124 TAD FIOSTK+2 /PROJ,PROG NUMBER 1857 12121 4451 JMS I UFO01 /OPEN THE UFD - I.E. MAKE AN ENTRY IN UFDTBL, RETTBL 1858 12122 5344 JMP LGI20 /COULD NOT FIND ROOM ON TABLE 1859 1860 12123 7240 LGI1, CLA CMA 1861 12124 1507 TAD I UTPRNU 1862 12125 3507 DCA I UTPRNU /ACCOUNT FOR NEW ENTRY IN ACCESS COUNT 1863 1864 /COMES HERE WHEN THE UFDTBL & RETTBL HAVE BEEN UPDATED 1865 /TO INCLUDE THIS LOGIN 1866 1867 12126 4470 FGETJT 1868 12127 0000 JOBSTS 1869 12130 3351 DCA LGI3 /ADDRESS OF STR0 1870 12131 1124 TAD FIOSTK+2 /ACCOUNT NUMBER? 1871 12132 0103 AND C7774 /IS IT LESS THAN 4? 1872 12133 7650 SNA CLA 1873 12134 1073 TAD C0200 /YES - SET ACCOUNT PRIVILEGE BIT 1874 12135 6211 DATFLD 1875 12136 3751 DCA I LGI3 /AND SAVE IT 1876 12137 4464 JMS I JBLD0 1877 12140 7200 CLA 1878 12141 1124 TAD FIOSTK+2 /PROJ,PROG NUMBER 1879 12142 5743 JMP I .+1 1880 12143 4603 RESET 1881 1882 12144 6221 LGI20, CFLD 1883 12145 7240 CLA CMA /COULD NOT LOGIN - RETURN WITH 7777 1884 12146 3020 DCA FIUSAC /INDICATE INABILITY TO LOG IN 1885 12147 5455 JMP I FIEXIT 1886 1887 12150 0000 LGMFDP, 0 1888 1889 LGI3, 1890 12151 0000 GTBLOK, 0 / VRS: reconstructed from working TSS-8 1891 12152 3350 DCA LGMFDP 1892 12153 6221 CFLD 1893 12154 1350 TAD LGMFDP 1894 12155 6202 CIF 0 1895 12156 4571 GETBLK 1896 12157 5751 JMP I GTBLOK /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 45 1897 12160 6211 DATFLD 1898 12161 1750 TAD I LGMFDP 1899 12162 2351 ISZ GTBLOK 1900 12163 5751 JMP I GTBLOK 1901 12164 7640 REN1, SZA CLA 1902 12165 7130 CLL CML RAR 1903 12166 7130 CLL CML RAR 1904 12167 3020 DCA FIUSAC 1905 12170 5455 JMP I 55 1906 12171 0000 WR1, 0 1907 12172 1025 TAD BUFSTA 1908 12173 1026 TAD BUFMOD 1909 12174 7710 SPA CLA 1910 12175 4461 JMS I WR01 1911 12176 5771 JMP I WR1 / VRS: End reconstruction 1912 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 46 1913 1914 /DIRECTORY SEARCH 1915 1916 /CALLING SEQUENCE: 1917 / CLA OR CIA (3 OR 1 WORD SEARCH) 1918 / JMS DS0 1919 / POINTER-----------------RETRIEVAL STACK POINTER 1920 / RETURN IF NOT FOUND NA 1921 / GOOD RETURN ME 1922 / (POINTER IN AC) XX 1923 1924 2200 *2200 1925 12200 0000 DS0, 0 1926 12201 7650 SNA CLA /SKIP IF ONE WORD SEARCH 1927 12202 7126 CLL CML RTL /THREE WORD COMPARE 1928 12203 7040 CMA 1929 12204 3310 DCA DSWDNR /MINUS NUMBER OF WORDS TO COMPARE 1930 12205 1600 TAD I DS0 /PICK UP POINTER TO RETRIEVAL INFORMATION 1931 12206 3311 DCA DSRETS 1932 12207 2200 ISZ DS0 1933 12210 1315 TAD DSM160 /SET UP COUNTER ON # ENTRIES CHECKED 1934 12211 3323 DCA DSKCNT 1935 12212 1711 TAD I DSRETS /GET RETRIEVAL POINTER 1936 12213 7041 CIA 1937 12214 1033 TAD RETTBL 1938 12215 7650 SNA CLA 1939 12216 7240 STA /INHIBIT SEGMENT COUNTING OF THE MFD 1940 12217 3120 DCA SEGLIM /ZERO SEGMENT COUNTER 1941 12220 3223 DS2, DCA DS1 1942 12221 1711 TAD I DSRETS /GET PTR TO RETRIEVAL INFORMATION BLOCK 1943 12222 4441 JMS I GE01 /GET THE ENTRY INTO CORE 1944 12223 0000 DS1, 0 /WORD NUMBER -- I.E. THE ADDR WITHIN THE DIRECTORY 1945 12224 7450 SNA 1946 12225 5263 JMP BADDIR /FOULED-UP DIRECTORY! 1947 12226 3312 DCA DSENTP /STORE POINTER TO ENTRY 1948 12227 1101 TAD C0005 1949 12230 1312 TAD DSENTP 1950 12231 3330 DCA DSCNTR /POINTS TO SEGMENT COUNT 1951 12232 1120 TAD SEGLIM /THE TOTAL FOR THIS UFD 1952 12233 7510 SPA /IS IT A UFD? 1953 12234 5300 JMP DS4 /NO; SEE IF WE SHOULD RESET THE MFD 1954 12235 1730 TAD I DSCNTR /ADD THIS FILE'S COUNT 1955 12236 3120 DCA SEGLIM /SAVE NEW TOTAL 1956 12237 1310 DS3, TAD DSWDNR /NUMBER OF WORDS TO COMPARE 1957 12240 3330 DCA DSCNTR 1958 12241 1311 TAD DSRETS 1959 12242 3313 DCA DSOBJT /POINTER TO OBJECT NAME 1960 12243 1312 TAD DSENTP 1961 12244 3314 DCA DSENT /POINTER TO NAME IN BUFFER 1962 12245 1714 DSCOM2, TAD I DSENT 1963 12246 2314 ISZ DSENT 1964 12247 7041 CIA 1965 12250 2313 ISZ DSOBJT 1966 12251 1713 TAD I DSOBJT 1967 12252 7640 SZA CLA 1968 12253 5261 JMP DSCOM1 /NOT FOUND 1969 12254 2330 ISZ DSCNTR /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 47 1970 12255 5245 JMP DSCOM2 /LOOK AT NEXT WORD OF NAME 1971 12256 2200 ISZ DS0 /FOUND THE ENTRY 1972 12257 1312 TAD DSENTP /PICK UP POINTER 1973 12260 5600 JMP I DS0 /RETURN 1974 /THIS ENTRY IS NOT THE ONE WE'RE LOOKING FOR, SO WE MUST 1975 /GO LOOK AT THE NEXT ONE. IN THIS ENTRY IS A RELATIVE PTR TO THE NEXT ONE 1976 /GET IT. 1977 12261 2323 DSCOM1, ISZ DSKCNT /BAD DIRECTORY? 1978 12262 5267 JMP DSCOM3 /IT ISN'T BAD AT THIS POINT 1979 12263 3316 BADDIR, DCA RESFLG /CLEAR AC AND RESET FLAG 1980 12264 1011 TAD P5400 /YES, INDICATE BAD DIRECTORY AND GET OUT 1981 12265 3020 DCA FIUSAC /ONCE AGAIN, GOODNESS TRIUMPHS OVER EVIL 1982 12266 5142 JMP RETURN /GO CLEAN UP BEFORE ABORTING 1983 12267 1075 DSCOM3, TAD P0003 /CREATE POINTER TO NEXT ENTRY 1984 12270 1312 TAD DSENTP 1985 12271 3330 DCA DSCNTR 1986 12272 1730 TAD I DSCNTR 1987 12273 7440 SZA /IS THIS THE END OF THE DIRECTORY CHAIN? 1988 12274 5220 JMP DS2 /NO, SO CONTINUE SEARCH 1989 12275 1075 TAD P0003 1990 12276 1223 TAD DS1 1991 12277 5600 JMP I DS0 1992 12300 1316 DS4, TAD RESFLG /SHOULD WE RESET? 1993 12301 7640 SZA CLA 1994 12302 5237 JMP DS3 /NO 1995 12303 3730 DCA I DSCNTR /CLEAR CPU TIME ACCUMULATOR 1996 12304 2330 ISZ DSCNTR 1997 12305 3730 DCA I DSCNTR /CLEAR DEVICE TIME ACCUMULATOR 1998 12306 3026 DCA BUFMOD /REMEMBER TO WRITE IT BACK 1999 12307 5237 JMP DS3 2000 12310 0000 DSWDNR, 0 2001 ENRETP, 2002 12311 0000 DSRETS, 0 2003 ENADDR, 2004 12312 0000 DSENTP, 0 2005 12313 0000 DSOBJT, 0 2006 12314 0000 DSENT, 0 2007 12315 7617 DSM160, -161 /-MAXIMUM # FILES USER CAN OWN (+2) 2008 /RETURN A BLOCK OF FREE CORE 2009 RESFLG, 2010 12316 0000 RETBKS, 0 2011 12317 6221 CFLD 2012 12320 6202 CIF 2013 12321 4575 RETBLK 2014 12322 5716 JMP I RETBKS 2015 /RETURN A LINKED LIST OF FREE BLOCKS 2016 ENTPTR, 2017 DSKCNT, 2018 12323 0000 RETBLS, 0 2019 12324 7450 SNA 2020 12325 5723 JMP I RETBLS 2021 12326 4316 JMS RETBKS 2022 12327 5324 JMP .-3 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 48 2023 2024 /SEARCH ENTTBL FOR OPENINGS TO FILE 2025 /CALLING SEQUENCE: 2026 / TAD (RETRIEVAL POINTER) 2027 / JMS ENS0 2028 / UFD ADDRESS OF DIRECTORY ENTRY 2029 / RETURN - FOUND AN ACCESS 2030 / RETURN - FOUND NO ACCESS 2031 2032 DSCNTR, 2033 12330 0000 ENS0, 0 2034 12331 4775 JMS I ENS30 2035 12332 3311 DCA ENRETP /RELATIVE POINTER 2036 12333 1730 TAD I ENS0 /GET FILE DIRECTORY ADDRESS 2037 12334 7041 CIA 2038 12335 3312 DCA ENADDR 2039 12336 2330 ISZ ENS0 /SKIP PAST ARG 2040 12337 1034 TAD ENTTBL 2041 12340 3323 DCA ENTPTR 2042 12341 1311 ENS2, TAD ENRETP 2043 12342 7040 CMA 2044 12343 1723 TAD I ENTPTR 2045 12344 2323 ISZ ENTPTR 2046 12345 7640 SZA CLA 2047 12346 5365 JMP ENS1 /DIFFERENT UFD ACCESS 2048 12347 1723 TAD I ENTPTR /SAME UFD, SAME FILE? 2049 12350 1312 TAD ENADDR 2050 12351 7640 SZA CLA 2051 12352 5365 JMP ENS1 /DIFFERENT FILE 2052 12353 1122 TAD FIOSTK /WHICH IOT BROUGHT US HERE? 2053 12354 1376 TAD ENSCRF /IF IT'S "CRF" ONE MATCH IS ENOUGH 2054 12355 7650 SNA CLA 2055 12356 5730 JMP I ENS0 /IT WAS; GET OUT 2056 12357 1123 TAD FIOSTK+1 /FOUND A SIMILAR ENTRY 2057 12360 4463 JMS I EBLD0 /SEE IF WE FOUND THE ENTRY FOR 2058 12361 7040 CMA /THE GUY WHO CAUSED THE CALL TO 2059 12362 1323 TAD ENTPTR /ENS0; IF IT IS, IGNORE THIS MATCH 2060 12363 7640 SZA CLA 2061 12364 5730 JMP I ENS0 /FOUND A SIMILAR ENTRY; DIFFERENT ENTTBL ENTRY 2062 12365 2323 ENS1, ISZ ENTPTR 2063 12366 1323 TAD ENTPTR 2064 12367 7041 CIA 2065 12370 1032 TAD ENTEND /END OF ENT TABLE 2066 12371 7640 SZA CLA 2067 12372 5341 JMP ENS2 /KEEP LOOKING 2068 12373 2330 ISZ ENS0 /SKIP ON RETURN 2069 12374 5730 JMP I ENS0 2070 12375 3567 ENS30, ENS3 2071 12376 7570 ENSCRF, -CRF /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 49 2072 2073 /ROUTINE TO LOOK IN THE SAT FOR A FREE SEGMENT 2074 2075 /CALLING SEQUENCE: 2076 / JMS SATLOK 2077 / RETURN (SEGMENT NUMBER IN AC, 0=NONE AVAILABLE) 2078 2400 *2400 2079 12400 0000 SATLOK, 0 2080 12401 7344 CLA CMA CLL RAL /7776 2081 12402 3261 DCA SATMSK /MAKE TWO PASSES OF THE TABLE 2082 12403 1657 TAD I SATCNT /# OF AVAILABLE DISC SEGMENTS 2083 12404 7450 SNA /ARE THERE ANY? 2084 12405 5600 JMP I SATLOK /NO, SO FORGET IT 2085 12406 7041 CIA 2086 12407 7040 CMA 2087 12410 3657 DCA I SATCNT /DECREMENT SATCNT 2088 12411 3260 DCA SATCT2 2089 12412 7240 CLA CMA 2090 12413 3027 DCA SATSTA /SET SAT STATUS TO WRITE OUT 2091 /LOOK FOR A WORD IN SAT TABLE WITH A ZERO BIT IN IT 2092 12414 1656 SAT1, TAD I SATPNT /GET A WORD FROM SAT TABLE 2093 12415 7040 CMA 2094 12416 7640 SZA CLA /ARE ALL BITS SET TO ONE? 2095 12417 5231 JMP SAT2 /NO, SO WE'VE FOUND A SEGMENT 2096 12420 2256 ISZ SATPNT /WAS THIS THE LAST WORD IN THE SAT TABLE? 2097 12421 5214 JMP SAT1 /NO, SO KEEP LOOKING 2098 12422 1230 TAD SAT5 /START LOOKING FROM THE BEGINNING 2099 12423 3256 DCA SATPNT /PTR INTO SAT TABLE 2100 12424 2261 ISZ SATMSK 2101 12425 5214 JMP SAT1 /MAKE 1 MORE PASS 2102 12426 3657 DCA I SATCNT /SOMETHING WRONG.. BETTER AVOID L2Q OVERFLOW 2103 /BY SAYING NO SEGMENTS AVAILABLE 2104 12427 5600 JMP I SATLOK 2105 12430 7252 SAT5, -SATSIZ+2 2106 2107 /WE FOUND A SAT WORD WITH A ZERO BIT. NOW FIND THAT BIT. 2108 12431 7130 SAT2, CLL CML RAR /4000 INTO ACC. 2109 12432 3261 DCA SATMSK 2110 12433 2260 ISZ SATCT2 2111 12434 1656 TAD I SATPNT /GET WORD FROM SAT TABLE 2112 12435 0261 AND SATMSK /IS THE BIT CORRESPONDING TO THE ONE IN SATMSK SET? 2113 12436 7450 SNA 2114 12437 5242 JMP SAT3 /NO, SO WE FOUND THE ZERO BIT 2115 12440 7010 RAR /MOVE MASK BIT ONE TO THE RIGHT 2116 12441 5232 JMP SAT2+1 /...AND LOOK AT THE NEXT BIT 2117 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 50 2118 2119 /FOUND THE BIT WITHIN THE WORD - SATCNT INDICATES WHICH ONE IT IS 2120 12442 1261 SAT3, TAD SATMSK 2121 12443 1656 TAD I SATPNT 2122 12444 3656 DCA I SATPNT /SET THE BIT IN SATTBL TO INDICATE THAT THIS SEGMENT IS NOW ALLOCATED 2123 12445 1256 TAD SATPNT 2124 12446 1375 TAD C0526 2125 12447 3261 DCA SATMSK 2126 /NOW CALCULATE THE NUMBER OF THE DISC SEGMENT 2127 /WHICH CORRESPONDS TO THIS BIT IN THE SAT TABLE 2128 12450 1261 TAD SATMSK 2129 12451 7104 CLL RAL 2130 12452 1261 TAD SATMSK 2131 12453 7006 RTL 2132 12454 1260 TAD SATCT2 2133 12455 5600 JMP I SATLOK /EXIT WITH DISC SEGMENT NUMBER IN AC 2134 2135 2136 12456 7252 SATPNT, -SATSIZ+2 2137 12457 7251 SATCNT, -SATSIZ+1 2138 SATEMP, 2139 12460 0000 SATCT2, 0 2140 12461 0000 SATMSK, 0 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 51 2141 2142 /ROUTINE TO RELEASE A SEGMENT IN SAT 2143 2144 /CALLING SEQUENCE: 2145 / TAD (SEGMENT NUMBER) 2146 / JMS SATREL 2147 2148 /DIVIDE SEGMENT NUMBER BY 14 (12 DECIMAL) 2149 /QUOTIENT INDICATES WHICH WORD IN SAT TABLE CORRESPONDS 2150 /TO THIS DISC SEGMENT. REMAINDER INDICATES WHICH BIT IN 2151 /THAT WORD. 2152 12462 0000 SATREL, 0 2153 12463 1012 TAD P2000 /SUBTRACT 14 X 400 2154 12464 7430 SZL /WAS THE SEGMENT THAT BIG? 2155 12465 5270 JMP .+3 /YES 2156 12466 1076 TAD P6000 /NO, ADD 14 X 400 2157 12467 7100 CLL /UN-DO THE LINK 2158 12470 7004 RAL /SHIFT OUT A BIT OF THE QUOTIENT 2159 12471 2110 ISZ CFH 2160 12472 5263 JMP SATREL+1 /MORE TO DO YET 2161 12473 3256 DCA SATPNT /REMAINDER IN LINK THRU AC2; QUOTIENT IN AC3 THRU AC11 2162 12474 1256 TAD SATPNT 2163 12475 0162 AND P7000 2164 12476 7006 RTL 2165 12477 7006 RTL 2166 12500 7040 CMA /NEGATE THE REMAINDER 2167 12501 3260 DCA SATEMP 2168 12502 1256 TAD SATPNT 2169 12503 0077 AND P0777 /JUST THE QUOTIENT THIS TIME 2170 12504 1230 TAD SAT5 2171 12505 3256 DCA SATPNT 2172 12506 7140 CLL CMA 2173 12507 7010 RAR 2174 12510 2260 ISZ SATEMP /SET UP A MASK CORRESPONDING TO PROPER BIT 2175 12511 5307 JMP .-2 2176 12512 0656 AND I SATPNT /CLEAR SAT TABLE BIT; SEGMENT IS NOW AVAILABLE 2177 12513 3656 DCA I SATPNT 2178 12514 2657 ISZ I SATCNT /UPDATE THE AVAILABLE SEGMENTS COUNT 2179 12515 7340 CLL STA 2180 12516 3027 DCA SATSTA /REMEMBER WE CHANGED THE SAT TABLE 2181 12517 5662 JMP I SATREL /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 52 2182 2183 /ACTUAL I/O ROUTINE 2184 /SET UP ALL I/O PARAMETERS IN #FLPARB#, AND JMS FIPIO 2185 2186 12520 0000 FIPIO, 0 2187 12521 1016 TAD FIPFLD 2188 12522 7010 RAR 2189 12523 3134 DCA FLPARB+2 /='S FIELD WE'RE IN TIMES 4 2190 12524 6201 CDF 2191 12525 1560 TAD I JOB 2192 12526 0156 AND C0400 /FIP OR SI CORTBL BIT ON? 2193 12527 7650 SNA CLA 2194 12530 5333 JMP .+3 /SI 2195 12531 1021 TAD FIJOB 2196 12532 3555 DCA I FIPJOB /FIP - KEEP HIGH PRIORITY ON THE SCHEDULER 2197 12533 1374 TAD FIRETP /POINTER TO FIORET 2198 12534 3001 DCA 1 /RETURN ADDRESS - SET TO RETURN BELOW WHEN FIP IS RESTARTED 2199 12535 1346 TAD FIO3 /GET FIPBLK 2200 12536 6211 DATFLD 2201 12537 3773 DCA I FIUTBA 2202 12540 6221 CFLD 2203 12541 6202 CIF 00 2204 12542 4567 BLT /MOVE DISC TRANSFER PARAMETERS INTO FREE BLOCK LINKED TO DSUTBL 2205 12543 6221 CFLD /FIP ALWAYS IN FIELD 2 2206 12544 0132 FLPARB /PARAMETER BLOCK 2207 12545 6211 DATFLD /DESTINATION FIELD 2208 12546 7720 FIO3, FIPBLK /DESTINATION 2209 12547 7770 -10 /WORD COUNT 2210 12550 6203 CDF CIF 00 2211 12551 2565 ISZ I DSBUSY /GLOBAL TO "DSBUSY" 2212 12552 5576 WAIT /DISK BUSY 2213 12553 5776 JMP I OVER /GO TO FIELD 0 TO INITIATE THE TRANSFER 2214 2215 /MONITOR RETURNS CONTROL HERE AFTER COMPLETING THE TRANSFER 2216 12554 7200 FIORET, CLA /RETURNS FROM DISC I/O COME HERE 2217 12555 1073 TAD C0200 /RESET THE FIP STARTING ADDRESS 2218 12556 3001 DCA 1 /... TO 0200 2219 12557 4470 FGETJT 2220 12560 0000 JOBSTS 2221 12561 6211 DATFLD 2222 12562 3372 DCA FIPTR1 2223 12563 1772 TAD I FIPTR1 /PICK UP #JOBSTS# 2224 12564 6221 CFLD /CHANGE TO CURRENT FIELD 2225 12565 1075 TAD P0003 2226 12566 0014 AND P0007 /CHECK ERROR BITS 2227 12567 7640 SZA CLA 2228 12570 2320 ISZ FIPIO /NO DISC TRANSFER ERROR 2229 12571 5720 JMP I FIPIO /EXIT WITHOUT SKIPPING TO INDICATE DISC TRANSFER ERROR 2230 2231 12572 0000 FIPTR1, 0 2232 12573 3246 FIUTBA, DSUTBL+4+4 2233 12574 2554 FIRETP, FIORET 2234 12575 0526 C0526, 0526 2235 12576 0562 OVER, OVRLA1 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 53 2236 2237 /ROUTINE TO GET A DIRECTORY WORD INTO CORE 2238 /CALLING SEQUENCE: 2239 / TAD (POINTER TO RETRIEVAL INFORMATION) 2240 / JMS GE0 2241 / WORD NUMBER 2242 / RETURN (BUFFER POINTER IN AC. 0 IF NON-EXISTENT) 2243 2244 2600 *2600 2245 2246 12600 0000 GE0, 0 2247 12601 3251 DCA GERETP /STORE RETRIEVAL INFORMATION POINTER 2248 12602 1600 TAD I GE0 2249 12603 7104 CLL RAL 2250 12604 7006 RTL 2251 12605 7006 RTL 2252 12606 0014 AND P0007 2253 12607 1251 TAD GERETP 2254 12610 3251 DCA GERETP 2255 12611 1651 TAD I GERETP 2256 12612 7450 SNA 2257 12613 5247 JMP GE3 2258 12614 7041 CIA 2259 12615 7040 CMA 2260 12616 3252 DCA RDTEMP 2261 /FILE READ ROUTINE, CHECKS TO SEE IF BUFFER IS FULL. 2262 /IF SO, IS IT THE SEGMENT WE ARE TRYING TO READ? 2263 /IF YES, LEAVE. IF NO, WRITE OUT THE BUFFER 2264 /BEFORE READING THE PROPER SEGMENT. 2265 12617 1253 TAD RDCURR /MAY THE DESIRED SEGMENT ALREADY BE IN THE BUFFER 2266 12620 7041 CIA 2267 12621 1252 TAD RDTEMP 2268 12622 7650 SNA CLA 2269 12623 1025 TAD BUFSTA /PROBABLY; IS THE DATA STILL VALID? 2270 12624 7510 SPA 2271 12625 5242 JMP RD3 /YES 2272 12626 7450 SNA /MAYBE 2273 12627 4443 JMS I WRT1 /WRONG SEGMENT, SO WRITE IT OUT (IF MODIFIED) 2274 12630 3025 DCA BUFSTA /SAVE BUFFER STATUS 2275 12631 1252 TAD RDTEMP 2276 12632 4273 JMS RD30 /SET UP PARAMETERS FOR A READ OPERATION 2277 12633 1025 TAD BUFSTA /WAS THE CORRECT DATA IN THE BUFFER AFTER ALL? 2278 12634 7640 SZA CLA 2279 12635 5242 JMP RD3 /YES; ONLY NEEDED TO SET THE DISK PARAMETERS 2280 12636 4445 JMS I FIO01 /PERFORM THE READ 2281 12637 5471 JMP I DIRBAD /ERROR ON READ 2282 12640 7001 IAC 2283 12641 3026 DCA BUFMOD /NEW DATA AS YET UNCHANGED 2284 12642 7240 RD3, CLA CMA 2285 12643 3025 DCA BUFSTA /SET BUFFER STATUS TO FULL 2286 12644 1255 TAD C0377 2287 12645 0600 AND I GE0 /ADDRESS WITHIN SEGMENT 2288 12646 1035 TAD BUFFER /CREATE A POINTER 2289 12647 2200 GE3, ISZ GE0 2290 12650 5600 JMP I GE0 /RETURN /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 54 2291 2292 12651 0000 GERETP, 0 2293 12652 0000 RDTEMP, 0 2294 12653 0000 RDCURR, 0 2295 12654 7400 K7400, 7400 2296 12655 0377 C0377, 0377 2297 2298 2299 2300 /ROUTINE TO DIVIDE A NUMBER BY 7 2301 /REMAINDER IS LEFT IN WNDREM, PAGE 0 2302 2303 12656 0000 WND20, 0 2304 12657 3024 DCA WNDREM 2305 12660 3110 DCA CFH 2306 12661 1024 TAD WNDREM 2307 12662 1105 WND24, TAD C7771 2308 12663 7510 SPA 2309 12664 5267 JMP WND21 2310 12665 2110 ISZ CFH 2311 12666 5262 JMP WND24 2312 12667 1014 WND21, TAD P0007 2313 12670 3024 DCA WNDREM 2314 12671 1110 TAD CFH 2315 12672 5656 JMP I WND20 2316 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 55 2317 2318 /ROUTINE TO SET UP FOR A READ. 2319 /ENTER WITH SEGMENT NUMBER. THIS IS CONVERTED TO 2320 /A PHYSICAL DISC ADDRESS. 2321 12673 0000 RD30, 0 2322 12674 3253 DCA RDCURR /SAVE SEGMENT NUMBER 2323 12675 1253 TAD RDCURR 2324 12676 7112 CLL RTR 2325 12677 7012 RTR 2326 12700 3252 DCA RDTEMP 2327 12701 1252 TAD RDTEMP 2328 12702 7010 RAR 2329 12703 0254 AND K7400 2330 12704 3137 DCA FLPARB+5 2331 12705 1252 TAD RDTEMP 2332 12706 0255 AND C0377 2333 12707 1157 TAD FIBASE 2334 12710 7106 CLL RTL 2335 12711 3133 DCA FLPARB+1 2336 12712 6221 CFLD /CHANGE TO CURRENT FIELD 2337 12713 1254 TAD K7400 2338 12714 3135 DCA FLPARB+3 /WORD COUNT (ONE BUFFER) 2339 12715 7240 CLA CMA 2340 12716 1035 TAD BUFFER 2341 12717 3136 DCA FLPARB+4 /CORE ADDRESS 2342 12720 1102 TAD C0603 /READ IOT 2343 12721 3132 DCA FLPARB 2344 12722 5673 JMP I RD30 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 56 2345 2346 0156 FIPFIP= C0400 2347 2348 2349 12723 3364 FIX301, FIX30 2350 12724 5600 C5600, 5600 2351 12725 0000 USENAM, 0 /CALLED ONLY ONCE BY RE-NAME ROUTINE 2352 12726 1123 TAD FIOSTK+1 /TO SEE IF THE NEW NAME EXISTS IN DIRECTORY 2353 12727 3122 DCA FIOSTK 2354 12730 4464 JMS I JBLD0 2355 12731 4452 JMS I UTS01 2356 12732 5471 JMP I DIRBAD 2357 12733 4456 JMS I BLDP1 2358 12734 3123 DCA FIOSTK+1 2359 12735 4440 JMS I DS01 2360 12736 0123 FIOSTK+1 2361 12737 2325 ISZ USENAM /NO FILE OF THIS NAME FOUND - OK TO RENAME 2362 12740 7200 CLA 2363 12741 5725 JMP I USENAM 2364 2365 12742 1315 NUCOR, CORSRC-2 2366 12743 7437 C7437, SWAP LOCK NOTRUN FIP CJOB 2367 12744 7754 JOBMX, -JOBMAX 2368 12745 2724 FIPLOC, FIPLOK 2369 12746 2423 FIPTIM, TIMFIP 2370 2371 12747 1123 REL1, TAD FIOSTK+1 /RELEASE A DEVICE 2372 12750 7510 SPA /DON'T LET THE USER RELEASE CONSOLES 2373 12751 4460 JMS I REL01 2374 12752 7200 CLA 2375 12753 5455 JMP I FIEXIT 2376 2377 2378 12754 1422 FIX50, TAD I FIOPTR 2379 12755 0156 AND FIPFIP /GLOBAL TO "FIP" 2380 12756 7650 SNA CLA /IF FIP BIT IS NOT SET, FIP WAS CALLED BY SI 2381 12757 5723 JMP I FIX301 /GET THE SYSTEM INTERPRETER BACK INTO CORE 2382 12760 1324 TAD C5600 2383 12761 0422 AND I FIOPTR 2384 12762 3422 DCA I FIOPTR /CLEAR OUT THE LOCK BIT 2385 12763 1344 TAD JOBMX 2386 12764 3110 DCA CFH /SAVE COUNT OF JOBS TO SCAN 2387 12765 7126 STL RTL 2388 12766 1742 TAD I NUCOR 2389 12767 7500 SMA 2390 12770 5374 JMP FIX51 2391 12771 3746 DCA I FIPTIM 2392 12772 1343 TAD C7437 2393 12773 3745 DCA I FIPLOC 2394 12774 7200 FIX51, CLA 2395 12775 6211 DATFLD 2396 12776 1021 TAD FIJOB 2397 12777 1177 TAD DEVOVR 2398 13000 3010 DCA INDEX /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 57 2399 2400 13001 1010 FIX50L, TAD INDEX 2401 13002 1216 TAD JEND 2402 13003 7640 SZA CLA 2403 13004 5207 JMP .+3 2404 13005 1177 TAD DEVOVR 2405 13006 3010 DCA INDEX 2406 13007 1410 TAD I INDEX 2407 13010 7440 SZA 2408 13011 4617 JMS I FIX5CK 2409 13012 2110 ISZ CFH 2410 13013 5201 JMP FIX50L 2411 13014 5615 JMP I .+1 2412 13015 4371 FIXOUT 2413 13016 4702 JEND, -JOBTBL-JOBMAX 2414 13017 4357 FIX5CK, FIXSCH 2415 /ROUTINE TO FREE AN ENTRY ON THE UFD TABLE AND RETTBL 2416 2417 /CALLING SEQUENCE: 2418 / TAD (POSITION ON UFDTBL) 2419 / JMS TF0 2420 / RETURN 2421 2422 2423 13020 0000 TF0, 0 2424 13021 3241 DCA TFUFDP /POSITION ON TABLE 2425 13022 3641 DCA I TFUFDP /CLEAR OWNER'S PROJ,PROG NUMBER 2426 13023 1032 TAD UFDTBL /BEGINNING OF TABLE 2427 13024 7041 CIA 2428 13025 1241 TAD TFUFDP 2429 13026 7112 CLL RTR /RELATIVE POSITION ON TABLE 2430 13027 7001 IAC 2431 13030 4456 JMS I BLDP1 /BUILD A PTR TO RETTBL 2432 13031 3241 DCA TFUFDP /POINTER TO RETRIEVAL INFORMATION 2433 13032 1106 TAD P7770 /8 WORDS PER ENTRY 2434 13033 3242 DCA TFCNTR 2435 13034 3641 TF1, DCA I TFUFDP /ZERO OUT THE ENTRY 2436 13035 2241 ISZ TFUFDP 2437 13036 2242 ISZ TFCNTR 2438 13037 5234 JMP TF1 2439 13040 5620 JMP I TF0 2440 2441 13041 0000 TFUFDP, 0 2442 13042 0000 TFCNTR, 0 2443 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 58 2444 2445 /ROUTINE TO CHECK WHETHER THE FILE A USER 2446 /IS ATTEMPTING TO ACCESS IS HIS/HERS OR SOMEONE ELSE'S. 2447 2448 /CALLING SEQUENCE: 2449 / TAD (INTERNAL FILE NUMBER) 2450 / JMS UC0 2451 / ERROR RETURN (AC=0 IF FILE NOT OPEN) 2452 / NORMAL RETURN 2453 2454 13043 0000 UC0, 0 2455 13044 4463 JMS I EBLD0 2456 13045 3263 DCA UCENTP 2457 13046 1663 TAD I UCENTP /PICK UP ENTRY FOR THIS FILE OF THIS USER'S 2458 13047 7450 SNA 2459 13050 5643 JMP I UC0 /FILE NOT OPEN 2460 13051 7041 CIA 2461 13052 7146 CLL CMA RTL /SUBTRACT ONE; MULTIPLY BY FOUR 2462 13053 1032 TAD UFDTBL 2463 13054 3264 DCA UCUFDP /POINTER TO OPEN UFD TABLE 2464 13055 4464 JMS I JBLD0 2465 13056 7041 CIA 2466 13057 1664 TAD I UCUFDP 2467 13060 7450 SNA /SKIP IF DIFFERENT 2468 13061 2243 ISZ UC0 /CORRECT RETURN 2469 13062 5643 JMP I UC0 2470 2471 13063 0000 UCENTP, 0 2472 13064 0000 UCUFDP, 0 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 59 2473 2474 /LOGOUT ROUTINE 2475 2476 13065 4511 LGO0, JMS I ACC01 /IS IT FROM ACCOUNT 1? 2477 13066 1123 TAD FIOSTK+1 /YES; SEE IF HE WANTS TO RESET 2478 13067 1021 TAD FIJOB /SEE IF HIS/HER AC=JOB 2479 13070 7650 SNA CLA 2480 13071 5776 JMP I LGRESA /GO CLEAR EVERYBODY'S CPU & DEVICE TIME ACCUMULATORS 2481 13072 1123 TAD FIOSTK+1 /DID HE SET HIS/HER AC= TO HIS/HER JOB #? 2482 13073 7041 CIA 2483 13074 1021 TAD FIJOB 2484 13075 7640 SZA CLA 2485 13076 5774 JMP I LGO1A /NO; SO SEE IF HE WANTS COUNT OF USERS UNDER HIS/HER ACCOUNT 2486 13077 4402 JMS I LNS01 /RELEASE ALL HIS/HER DEVICES 2487 13100 5303 JMP .+3 2488 13101 4460 JMS I REL01 2489 13102 5277 JMP .-3 /KEEP GOING 2490 13103 4453 JMS I CL01 /CLOSE FILE 0 2491 13104 7001 IAC 2492 13105 4453 JMS I CL01 /CLOSE FILE 1 2493 13106 7126 CLL CML RTL 2494 13107 4453 JMS I CL01 /CLOSE FILE 2 2495 13110 1075 TAD P0003 2496 13111 4453 JMS I CL01 /CLOSE FILE 3 2497 13112 4464 JMS I JBLD0 2498 13113 3372 DCA LOSRRI+1 /DELIVER TO CALLING SEQUENCE FOR SEARCH 2499 13114 1110 TAD CFH 2500 13115 3370 DCA LOJOBP 2501 13116 7240 CLA CMA 2502 13117 4440 JMS I DS01 /FIND MFD ENTRY; 1 WORD SEARCH 2503 13120 3171 LOSRRI 2504 13121 5471 JMP I DIRBAD /************DEBUG ONLY*********** 2505 13122 1072 TAD C0006 2506 13123 3372 DCA LOSRRI+1 /POINTER TO CP TIME COUNTER 2507 13124 4470 FGETJT 2508 13125 0023 JOBRTM /JOB RUN TIME IN STATUS 2509 13126 3130 DCA FIOSTK+6 /INTS TO LOW ORDER RUN TIME 2510 13127 6211 DATFLD 2511 13130 1530 TAD I FIOSTK+6 2512 13131 7012 RTR 2513 13132 7012 RTR 2514 13133 7012 RTR /USE ONLY HIGH ORDER OF LOW ORDER RUN TIME 2515 13134 0013 AND P0077 2516 13135 3131 DCA FIOSTK+7 2517 13136 2130 ISZ FIOSTK+6 2518 13137 1530 TAD I FIOSTK+6 2519 13140 6221 CFLD /BACK TO THIS FIELD 2520 13141 0013 AND P0077 2521 13142 7106 CLL RTL 2522 13143 7006 RTL 2523 13144 7006 RTL 2524 13145 1131 TAD FIOSTK+7 2525 13146 1772 TAD I LOSRRI+1 2526 13147 3772 DCA I LOSRRI+1 /LOW ORDER TIME UPDATE 2527 13150 3026 DCA BUFMOD /SCHEDULE WRITE 2528 13151 1770 TAD I LOJOBP /PICK UP PROJ,PROG NUMBER 2529 13152 4452 JMS I UTS01 /SEARCH UFD TABLE /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 60 2530 13153 5361 JMP LGO2 /OOPS!! MIGHT AS WELL TRY TO LEAVE GRACEFULLY 2531 13154 2507 ISZ I UTPRNU /REMOVE THIS JOB FROM ACCESS COUNT 2532 13155 5361 JMP LGO2 2533 13156 7240 CLA CMA /LAST USER ACCESSING THIS UFD 2534 13157 1107 TAD UTPRNU 2535 13160 4447 JMS I TF01 /FREE THE UFD TABLE ENTRY 2536 13161 7200 LGO2, CLA 2537 13162 3770 DCA I LOJOBP /REMOVE USER FROM JOB TABLE 2538 13163 1373 TAD LGO4A /KLUDGE FIEXIT TO RETURN TO LGO4 2539 13164 3775 DCA I LGKLUJ 2540 13165 7240 TABOUT, CLA CMA 2541 13166 3030 DCA TABSTA /FORCE TABLES OUT 2542 13167 5455 JMP I FIEXIT 2543 13170 0000 LOJOBP, 0 2544 2545 13171 6525 LOSRRI, RTABLE 2546 13172 0000 0 2547 13173 4436 LGO4A, LGO4 2548 13174 4472 LGO1A, LGO1 2549 13175 3442 LGKLUJ, FIX500 2550 13176 5172 LGRESA, LGRES0 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 61 2551 2552 /ROUTINE TO OPEN A UFD 2553 2554 /CALLING SEQUENCE: 2555 / TAD (PROJ,PROG NUMBER) 2556 / JMS UFO0 2557 / ERROR RETURN (AC=0 IF TABLES FULL; OTHERWISE UFD NOT FOUND) 2558 / NORMAL RETURN (POSITION ON TABLE IN AC) 2559 2560 3200 *3200 2561 2562 13200 0000 UFO0, 0 2563 13201 4260 JMS UFO6 /GO GET THE RETR. INFO FOR THIS GUY'S UFD INTO CORE 2564 13202 5600 JMP I UFO0 /COULDN'T GET IT 2565 13203 3257 DCA UOBUFP /POINTER TO RETRIEVAL INFORMATION 2566 13204 1032 TAD UFDTBL 2567 13205 7001 IAC 2568 13206 3107 DCA UOUFDP /UFD TABLE POINTER 2569 /SEARCH FOR A FREE SLOT IN UFDTBL 2570 13207 1507 UFO3, TAD I UOUFDP 2571 13210 7650 SNA CLA 2572 13211 5223 JMP UFO2 /FOUND A FREE SLOT ON THE TABLE 2573 13212 1107 TAD UOUFDP /THIS SLOT IS OCCUPIED 2574 13213 1015 TAD P0004 2575 13214 3107 DCA UOUFDP /NEXT POSITION (ACCES COUNT ENTRY) 2576 13215 1033 TAD UFDEND /ARE WE AT THE END OF THE TABLE 2577 13216 7040 CMA 2578 13217 1107 TAD UOUFDP 2579 13220 7650 SNA CLA /HAVE WE SEARCHED THE WHOLE TABLE? 2580 13221 5600 JMP I UFO0 /NO ROOM ON TABLE 2581 13222 5207 JMP UFO3 /LOOK AT NEXT SLOT 2582 2583 /COMES HERE WITH UOUFDP POINTING TO A FREE SLOT IN UFDTBL 2584 13223 7344 UFO2, CLL STA RAL /AC=-2 2585 13224 1107 TAD UOUFDP /BACK UP THE POINTER 2586 13225 3010 DCA INDEX 2587 13226 1255 TAD UFORET+1 2588 13227 4656 JMS I UFQUOA /LOAD THE UFD TABLE 2589 13230 7240 STA 2590 13231 1032 TAD UFDTBL 2591 13232 7041 CIA 2592 13233 1010 TAD INDEX 2593 13234 7112 CLL RTR 2594 13235 3260 DCA UFO6 /RELATIVE POSITION ON TABLE 2595 13236 1260 TAD UFO6 2596 13237 4456 JMS I BLDP1 /GENERATE A PTR INTO RETTBL 2597 13240 3254 DCA UFORET /RETRIEVAL POINTER 2598 13241 1105 TAD C7771 2599 13242 3110 DCA CFH /COUNTER FOR TRANSFER TO TABLE /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 62 2600 2601 /NOW MOVE RETRIEVAL INFORMATION FOR THIS GUY'S 2602 /UFD INTO RETTBL 2603 13243 2257 UFO4, ISZ UOBUFP 2604 13244 1657 TAD I UOBUFP 2605 13245 3654 DCA I UFORET 2606 13246 2254 ISZ UFORET 2607 13247 2110 ISZ CFH /ENTIRE RETRIEVAL BLOCK TRANSFERRED? 2608 13250 5243 JMP UFO4 /NO, KEEP IT UP 2609 13251 2200 ISZ UFO0 /YES, PREPARE FOR NORMAL RETURN 2610 13252 1260 TAD UFO6 /PICK UP RELATIVE POSITION 2611 13253 5600 JMP I UFO0 2612 2613 13254 0000 UFORET, 0 2614 13255 0000 0 2615 13256 4116 UFQUOA, UFQUOT 2616 0107 UOUFDP= UTPRNU 2617 13257 0000 UOBUFP, 0 2618 2619 2620 13260 0000 UFO6, 0 2621 13261 3255 DCA UFORET+1 /SET UP CALLING SEQUENCE FOR MFD SEARCH 2622 13262 1033 TAD RETTBL 2623 13263 3254 DCA UFORET 2624 13264 7040 CMA 2625 13265 4440 JMS I DS01 /ONE WORD MASTER FILE DIRECTORY SEARCH FOR PROJ,PROG MATCH 2626 13266 3254 UFORET 2627 13267 5660 JMP I UFO6 /COULD NOT FIND UFD ENTRY 2628 13270 1015 TAD P0004 /POINT AT DISK QUOTA WORD 2629 13271 3254 DCA UFORET 2630 13272 1654 TAD I UFORET 2631 13273 0013 AND P0077 /SAVE ONLY LOGIN QUOTA 2632 13274 3120 DCA SEGLIM /SAVE FOR LATER 2633 13275 1075 TAD P0003 2634 13276 1254 TAD UFORET 2635 13277 3254 DCA UFORET /POINTER TO UFD RETRIEVAL INFORMATION 2636 13300 1654 TAD I UFORET 2637 13301 3304 DCA UFO1 2638 13302 1033 TAD RETTBL /POINTER TO RET. INFO OF FILE BEING SEARCHED (IN THIS CASE, THE MFD) 2639 13303 4441 JMS I GE01 /GET RETRIEVAL INFORMATION INTO CORE 2640 13304 0000 UFO1, 0 2641 13305 2260 ISZ UFO6 2642 13306 5660 JMP I UFO6 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 63 2643 2644 /ROUTINE TO SEARCH UFD TABLE FOR PROJ,PROG NUMBER 2645 2646 /CALLING SEQUENCE: 2647 / TAD (PROJ,PROG NUMBER) 2648 / JMS UTS0 2649 / NOT FOUND RETURN 2650 / NORMAL RETURN (RETRIEVAL POSITION IN AC) 2651 2652 13307 0000 UTS0, 0 2653 13310 3341 DCA UTPR1 /PROJ,PROG NUMBER 2654 13311 1032 TAD UFDTBL /PTR TO HEAD OF UFDTBL 2655 13312 3107 DCA UTUPTR 2656 13313 1033 UTS1, TAD UFDEND /END OF UFD TABLE 2657 13314 7041 CIA 2658 13315 1107 TAD UTUPTR 2659 13316 7650 SNA CLA 2660 13317 5707 JMP I UTS0 /COULD NOT FIND PROJ,PROG NUMBER ON TABLE 2661 13320 1507 TAD I UTUPTR 2662 13321 7041 CIA 2663 13322 1341 TAD UTPR1 2664 13323 7650 SNA CLA 2665 13324 5331 JMP UTS3 /FOUND ENTRY, GET POINTER 2666 13325 1107 TAD UTUPTR /STEP UP ONE SLOT 2667 13326 1015 TAD P0004 2668 13327 3107 DCA UTUPTR 2669 13330 5313 JMP UTS1 /LOOK IN THE NEXT ENTRY 2670 13331 1032 UTS3, TAD UFDTBL 2671 13332 7041 CIA 2672 13333 1107 TAD UTUPTR 2673 13334 7112 CLL RTR /RELATIVE POSITION ON TABLE 2674 13335 7001 IAC /THE RELATIVE POSITION 2675 13336 2107 ISZ UTPRNU /UTPRNU POINTS TO ACCESS COUNT OF THIS PROJ, PROG # 2676 13337 2307 ISZ UTS0 2677 13340 5707 JMP I UTS0 2678 2679 DVT1, 2680 13341 0000 UTPR1, 0 2681 0107 UTUPTR= UTPRNU /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 64 2682 2683 13342 0000 DVT0, 0 /COMPUTE DEVICE TIME AT RELEASE 2684 13343 3341 DCA DVT1 /ELAPSED DEVICE TIME 2685 13344 4464 JMS I JBLD0 2686 13345 3363 DCA DVT3 /PROJ,PROG NUMBER OF CURRENT USER 2687 13346 7240 CLA CMA 2688 13347 4440 JMS I DS01 /SEARCH MFD FOR PROJ,PROG NUMBER 2689 13350 3362 DVT4 2690 13351 5471 JMP I DIRBAD /***********DEBUG ONLY*********** 2691 13352 1101 TAD C0005 2692 13353 3110 DCA CFH /POINTER TO DEVICE TIME WORD 2693 13354 1341 TAD DVT1 2694 13355 1510 TAD I CFH /UPDATE USER'S CUMULATIVE DEVICE TIME 2695 13356 3510 DCA I CFH 2696 13357 3026 DCA BUFMOD /SCHEDULE WRITE 2697 13360 6211 DATFLD 2698 13361 5742 JMP I DVT0 2699 2700 13362 6525 DVT4, RTABLE 2701 13363 0000 DVT3, 0 2702 2703 2704 2705 /COMES HERE IF FIP WAS CALLED BY S.I. 2706 /READ S.I. BACK IN AND RETURN TO IT 2707 13364 6221 FIX30, CFLD /CHANGE TO CURRENT FIELD 2708 13365 1102 TAD C0603 2709 13366 3132 DCA FLPARB /SET UP READ IOT 2710 13367 3133 DCA FLPARB+1 /SI IS ON TRACK 0 OF THE DISC 2711 13370 4465 JMS I FIX401 2712 13371 4445 JMS I FIO01 /RETURN WILL BE TO SI 2713 2714 2715 13372 0000 SCL1, 0 2716 13373 4777 JMS I RD301 /SET UP DISK PARAMETERS 2717 13374 7240 STA 2718 13375 3025 DCA BUFSTA /FUDGE TO APPEAR THAT READ WAS DONE 2719 13376 5772 JMP I SCL1 2720 2721 13377 2673 RD301, RD30 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 65 2722 2723 /EXIT ROUTINE 2724 /COMES HERE WHEN FIP HAS COMPLETED ITS TASK 2725 /FIRST, SEE IF ANY INTERNAL FILES HAVE BEEN CHANGED 2726 /THOSE THAT HAVE CHANGED MUST BE WRITTEN BACK OUT TO DISC 2727 3400 *3400 2728 /*** ANY DATA FIELD IS OK AT THIS POINT!! 2729 2730 13400 4443 FIX0, JMS I WRT1 /MAKE SURE THE BUFFER IS EMPTY 2731 13401 2030 ISZ TABSTA /CHECK TABLE STATUS 2732 13402 5205 JMP FIX1 /NOTHING CHANGED IN TABLES 2733 13403 1031 TAD JOBTAB /BOTTOM OF TABLE AREA 2734 13404 5210 JMP FIX2 /SAVE TABLES BEFORE EXIT 2735 2736 13405 2027 FIX1, ISZ SATSTA /CHECK SAT STATUS 2737 13406 5217 JMP FIX20 /NOTHING TO BE SAVED, EXIT 2738 13407 1036 TAD SATBOT /BOTTOM OF SAT 2739 13410 4465 FIX2, JMS I FIX401 2740 13411 1015 TAD FIDEXP /GLOBAL TI "FIPDEX" 2741 13412 3133 DCA FLPARB+1 /MEMORY FIELD 2742 13413 1100 TAD C0605 2743 13414 3132 DCA FLPARB /WRITE IOT 2744 13415 4445 JMS I FIO01 /PERFORM THE WRITE 2745 13416 7402 HLT /ERROR ON WRITE, FATAL 2746 2747 /ALL DISC TABLES ARE NOW UP TO DATE (*** ANY DATA FIELD IS OK AT THIS POINT!!) 2748 13417 4470 FIX20, FGETJT 2749 13420 0000 JOBSTS 2750 13421 3022 DCA FIOPTR 2751 13422 6211 DATFLD 2752 13423 1422 TAD I FIOPTR 2753 13424 0243 AND FISIOT 2754 13425 3422 DCA I FIOPTR 2755 13426 6221 CFLD 2756 13427 4470 FGETJT /RESTORE USER AC 2757 13430 0013 JOBREG+2 2758 13431 3022 DCA FIOPTR /ADDRESS OF USER'S AC 2759 13432 1020 TAD FIUSAC 2760 13433 6211 DATFLD 2761 13434 3422 DCA I FIOPTR 2762 13435 6201 CDF 2763 13436 1017 TAD C002 /FIP ALWAYS RUNS IN FIELD 2 SO ADD 2 TO CORTBL 2764 13437 1162 TAD CORTBA /GLOBAL TO "CORTBL" 2765 13440 3022 DCA FIOPTR /POINTS TO THIS FIELD'S ENTRY IN CORTBL 2766 13441 5642 JMP I .+1 2767 13442 2754 FIX500, FIX50 2768 2769 13443 7677 FISIOT, -JSIOT-1 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 66 2770 2771 /ROUTINE TO DETERMINE IF A DEVICE IS ASSIGNED TO THIS JOB 2772 2773 /CALLING SEQUENCE: 2774 / TAD (DEVICE NUMBER) 2775 / JMS DTE0 2776 / 0 (SET BY DTE0 TO POINT TO ENTRY IN DEVTBL) 2777 / RETURN (DEVICE NOT ASSIGNED TO THIS JOB) 2778 / RETURN (DEVICE ASSIGNED) 2779 2780 13444 0000 DTE0, 0 2781 13445 7510 SPA 2782 13446 5306 JMP DTE10 /NON-TTY DEVICE 2783 13447 1302 TAD NULNM1 /CHECK FOR VALID TTY NUMBER 2784 13450 7500 SMA 2785 13451 5276 JMP DTE6 /INVALID TTY NUMBER 2786 13452 7104 CLL RAL /TWO WORDS PER TTY 2787 13453 1164 DTE4, TAD DEVEND /FIND LOCATION IN DEVTBL 2788 13454 6221 DTE5, CFLD 2789 13455 3644 DCA I DTE0 /RETURN ARGUMENT 2790 13456 1644 TAD I DTE0 2791 13457 2244 ISZ DTE0 2792 13460 3301 DCA DTE2 2793 13461 6211 DATFLD 2794 13462 1701 TAD I DTE2 /GET POINTER TO DDB 2795 13463 7450 SNA /IS THERE ONE? 2796 13464 5644 JMP I DTE0 /NO, RETURN 2797 13465 3301 DCA DTE2 /YES 2798 13466 2301 ISZ DTE2 2799 13467 1701 TAD I DTE2 /GET JOB NUMBER 2800 13470 7041 CIA 2801 13471 1021 TAD FIJOB /NUMBER OF CURRENT JOB 2802 13472 0074 AND P0037 2803 13473 7650 SNA CLA /DOES DEVICE BELONG TO THIS JOB? 2804 13474 2244 ISZ DTE0 /YES 2805 13475 5644 JMP I DTE0 /RETURN 2806 13476 7240 DTE6, STA 2807 13477 1163 TAD DEVTBA /POINT TO DUMMY DEVTBL ENTRY 2808 13500 5254 JMP DTE5 2809 2810 2811 13501 0000 DTE2, 0 2812 13502 7744 NULNM1, -NULINE-1 2813 13503 3777 P3777, 3777 2814 13504 7756 NUDEVM, DEVTBE-JOBTBL 2815 13505 0022 NUDEV, JOBTBL-DEVTBE 2816 2817 13506 0303 DTE10, AND P3777 2818 13507 1304 TAD NUDEVM /CHECK DEVICE NUMBER FOR VALIDITY 2819 13510 7500 SMA 2820 13511 5276 JMP DTE6 /INVALID DEVICE NUMBER 2821 13512 1305 TAD NUDEV /GET DEVICE NUMBER BACK 2822 13513 5253 JMP DTE4 /GO FINISH UP /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 67 2823 2824 13514 0000 LNK0, 0 /GET FILE LINKAGE 2825 13515 1325 TAD LNKF 2826 13516 3320 DCA LNK1 2827 13517 4470 FGETJT 2828 13520 0000 LNK1, 0 2829 13521 3110 DCA CFH 2830 13522 6211 DATFLD 2831 13523 1510 TAD I CFH /PTR TO FILE CONTROL BLOCK 2832 13524 5714 JMP I LNK0 2833 13525 0017 LNKF, JOBF0 2834 SAV1, 2835 13526 0000 FGETJ0, 0 2836 13527 6221 CFLD 2837 13530 1726 TAD I FGETJ0 2838 13531 3335 DCA .+4 2839 13532 1161 TAD JOBDAT 2840 13533 6202 CIF 2841 13534 4574 GETJTA 2842 13535 0000 0 2843 13536 2326 ISZ FGETJ0 2844 13537 5726 JMP I FGETJ0 2845 13540 0000 SAVCRE, 0 2846 13541 3326 DCA SAV1 2847 13542 1326 TAD SAV1 /FILE ADDR 2848 13543 1015 TAD P0004 /PTR TO PROTECTION BITS IN FILE 2849 13544 3356 DCA SAV2 2850 13545 1756 TAD I SAV2 /GET THE PROTECTION BITS 2851 13546 0016 AND C0020 /IS IT WRITE PROTECTED AGAINST THE OWNER? 2852 13547 7640 SZA CLA 2853 13550 5755 JMP I EXT10A /YES, RETURN WITH PROT. VIOLATION MESSAGE 2854 13551 1326 TAD SAV1 /NO, REDUCE THE FILE TO 0 SEGS 2855 13552 4754 JMS I RED11 /GO DO REDUCTION 2856 13553 5740 JMP I SAVCRE /RETURN 2857 13554 1654 RED11, RED1 2858 13555 1516 EXT10A, EXT10 2859 SAV2, 2860 13556 0000 CRFUFD, 0 2861 13557 4511 JMS I ACC01 /IS THIS ACCOUNT 1? 2862 13560 5364 JMP CRFUF1 /YES 2863 13561 7001 IAC 2864 13562 3410 DCA I INDEX /FILE SIZE INITIALLY 1 2865 13563 5756 JMP I CRFUFD /BACK FOR THE DATE 2866 13564 3410 CRFUF1, DCA I INDEX /ZERO CPU TIME 2867 13565 5766 JMP I .+1 /GO ZERO DEVICE TIME ALSO 2868 13566 1316 CRFUFR 2869 /CONVERT AN ABSOLUTE PTR INTO RETTBL TO A RELATIVE ENTRY NUMBER 2870 13567 0000 ENS3, 0 2871 13570 7041 CIA 2872 13571 1033 TAD RETTBL /REL. PTR TO ADDRESS WITHIN RETTBL 2873 13572 7041 CIA 2874 13573 0106 AND P7770 /ANY POINTER WITHIN THE BLOCK IS OK 2875 13574 7112 CLL RTR 2876 13575 7010 RAR /DIVIDE BY 8 2877 13576 5767 JMP I ENS3 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 68 2878 2879 /ROUTINE TO ASSIGN A DEVICE 2880 2881 3600 *3600 2882 13600 1123 ASD1, TAD FIOSTK+1 2883 13601 7500 SMA /TTY? 2884 13602 5467 JMP I LGI201 /DON'T LET HIM/HER ASSIGN TTY'S! RETURN WITH AC=7777 2885 13603 4444 JMS I DTE01 /IS THIS DEVICE ASSIGNED TO THIS JOB? 2886 13604 0000 ASD2, 0 /SET BY DTE01 TO POINT TO PROPER ENTRY IN DEVTBL 2887 13605 7410 SKP 2888 13606 5241 JMP ASD4 /YES 2889 13607 1604 TAD I ASD2 /GET DDB ADDRESS FOR THIS DEVICE 2890 13610 7440 SZA /ZERO? 2891 13611 5232 JMP ASD11 /NO, SO SOMEONE HAS IT 2892 /COMES HERE IF OKAY TO MAKE THIS ASSIGNMENT 2893 13612 6221 CFLD /CHANGE TO CURRENT FIELD 2894 13613 1204 TAD ASD2 2895 13614 6202 6202 /CIF FIELD 0 2896 13615 4572 GETDDB /GET A BLOCK FROM THE FREE LIST AND LINK IT INTO DEVTBL 2897 13616 5467 JMP I LGI201 /NO BLOCK.. REDO IN CASE OF USER OTHERWISE ERROR RETURN FOR SI 2898 13617 6211 DATFLD 2899 13620 1604 TAD I ASD2 /PICK DDB ADDRESS FROM DEVTBL 2900 13621 3110 DCA CFH /SAVE IT 2901 13622 1123 TAD FIOSTK+1 2902 13623 0074 AND P0037 /CLEAR BIT 0 2903 13624 3510 DCA I CFH /SET TO REFLECT THE DEVICE NUMBER 2904 13625 2110 ISZ CFH 2905 13626 1021 TAD FIJOB 2906 13627 3510 DCA I CFH /PLUG IN THE JOB NUMBER 2907 13630 6221 ASD7, CFLD 2908 13631 5455 JMP I FIEXIT 2909 2910 /COMES HERE IF ONE JOB ATTEMPTS TO ASSIGN AN ALREADY ASSIGNED DEVICE 2911 13632 7001 ASD11, IAC 2912 13633 3110 DCA CFH 2913 13634 1510 TAD I CFH 2914 13635 7450 SNA 2915 13636 7040 CMA 2916 13637 3020 DCA FIUSAC /DELIVER TO USER'S AC 2917 13640 5230 JMP ASD7 /EXIT 2918 2919 13641 1123 ASD4, TAD FIOSTK+1 2920 13642 7104 CLL RAL 2921 13643 7640 SZA CLA /PTR? 2922 13644 5230 JMP ASD7 /NO 2923 13645 1604 TAD I ASD2 2924 13646 6202 CIF 00 2925 13647 4651 JMS I ASDCLR /CLEAR THE READER BUFFER 2926 13650 5230 JMP ASD7 2927 13651 6572 ASDCLR, SICLR /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 69 2928 2929 /ROUTINE TO PERFORM ACTUAL REDUCTION 2930 2931 /CALLING SEQUENCE: 2932 / TAD (NUMBER OF SEGMENTS TO REMAIN) 2933 / JMS RED30 2934 / RETRIEVAL CHAIN POINTER 2935 / UFD RETRIEVAL POINTER 2936 / RETURN 2937 2938 2939 /FIRST TRACE THRU THE LINKED LIST OF FILE INFORMATION 2940 /RETRIEVAL BBLOCKS UNTIL WE GET TO THE ONE IN WHICH THE 2941 /NEW LAST SEGMENT IS 2942 13652 0000 RED30, 0 2943 13653 3256 DCA RED31 /LINKAGE TO RETRIEVAL CHAIN 2944 13654 1023 TAD GDRETP /PICK UP RETRIEVAL POINTER 2945 13655 4441 JMS I GE01 /GET THIS WORD INTO CORE 2946 13656 0000 RED31, 0 2947 13657 3371 DCA REBUFF 2948 13660 1771 TAD I REBUFF /PICK UP LINK TO NEXT 2949 13661 3256 DCA RED31 /SAVE LINK 2950 13662 1024 TAD WNDREM /DELETING ENTIRE WINDOW? 2951 13663 7650 SNA CLA 2952 13664 5332 JMP RED36 /YES, REMOVE LINK TO LAST WINDOW AS WELL 2953 13665 2121 RED37, ISZ REWNDC /AT END OF CHAIN? 2954 13666 5254 JMP RED30+2 /NO, KEEP SAVING 2955 13667 3771 DCA I REBUFF /YES, TERMINATE IT 2956 /FOUND RETRIEVAL BLOCK IN WHICH TO CHOP OFF 2957 /THE LIST OF SEGMENTS. 2958 /START DELETING THE SEGMENT NUMBERS AND RETURNING 2959 /THE ACTUAL DISC SEGMENTS TO THE POOL 2960 13670 1024 TAD WNDREM 2961 13671 7001 IAC /GET POINTER TO FIRST SEGMENT TO BE DELETED 2962 13672 1371 TAD REBUFF 2963 13673 3371 DCA REBUFF /POINTER TO FIRST SEGMENT TO REMOVE 2964 13674 3120 DCA SEGLIM /CLEAR SEGMENT COUNTER 2965 13675 1024 TAD WNDREM /NUMBER OF SEGMENTS TO LEAVE IN RET. WINDOW 2966 13676 1105 RED32, TAD C7771 /7 SEGMENTS PER RETRIEVAL WINDOW 2967 13677 3121 DCA REWNDC /SAVE COUNT 2968 13700 3026 DCA BUFMOD /REMEMBER TO WRITE OUT THE BUFFER 2969 13701 1367 RED33, TAD REDM9 2970 13702 3110 DCA CFH /SET COUNT FOR SATREL DIVIDE 2971 13703 7360 STL STA 2972 13704 1771 TAD I REBUFF /PICK UP THE SEGMENT NUMBER 2973 13705 7430 SZL /IS IT A REAL SEGMENT 2974 13706 5341 JMP RED38 /NO; END OF WINDOW, END OF FILE 2975 13707 4770 JMS I SATREA /RELEASE IT ON SAT 2976 13710 3771 DCA I REBUFF /CLEAR THE CCELL 2977 13711 2120 ISZ SEGLIM /COUNT SEGMENT 2978 13712 2371 ISZ REBUFF 2979 13713 2121 ISZ REWNDC /END OF CURRENT RETRIEVAL WINDOW? 2980 13714 5301 JMP RED33 /NO, CONTINUE 2981 13715 1256 TAD RED31 /YES, MOVE TO NEXT 2982 13716 7450 SNA /END OF CHAIN? 2983 13717 5346 JMP RED39 /YES, EXIT /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 70 2984 2985 13720 3323 RED34, DCA RED35 /NO 2986 13721 1023 TAD GDRETP 2987 13722 4441 JMS I GE01 /GET NEXT WINDOW 2988 13723 0000 RED35, 0 2989 13724 3371 DCA REBUFF 2990 13725 1771 TAD I REBUFF 2991 13726 3256 DCA RED31 /SET UP LINK TO NEXT 2992 13727 3771 DCA I REBUFF /CLEAR FIRST WORD OF WINDOW 2993 13730 2371 ISZ REBUFF 2994 13731 5276 JMP RED32 /KEEP WIPING OUT 2995 2996 13732 7326 RED36, STL CLA RTL /ARE WE TWO WINDOWS FROM THE END YET? 2997 13733 1121 TAD REWNDC 2998 13734 7640 SZA CLA 2999 13735 5265 JMP RED37 /NOT EXACTLY 3000 13736 3771 DCA I REBUFF /YES, CLEAR LINK TO NOW EMPTY WINDOW 3001 13737 3026 DCA BUFMOD /SCHEDULE WRITE 3002 13740 5265 JMP RED37 3003 3004 13741 7200 RED38, CLA 3005 13742 3771 DCA I REBUFF /CLEAR TO END OF WINDOW 3006 13743 2371 ISZ REBUFF 3007 13744 2121 ISZ REWNDC /ARE WE THERE YET? 3008 13745 5341 JMP RED38 /NO 3009 13746 1023 RED39, TAD GDRETP /GET RETRIEVAL POINTER 3010 13747 4766 JMS I ENS32 /CONVERT IT INTO A RELATIVE ENTRY NUMBER 3011 13750 7126 STL RTL /TIMES 4 PLUS 2 3012 13751 7001 IAC 3013 13752 1032 TAD UFDTBL /POINTS TO WORD3 OF UFDTBL ENTRY 3014 13753 3371 DCA REBUFF 3015 13754 1771 TAD I REBUFF /HAS HIS/HER SEGMENT COUNT BEEN SET UP YET? 3016 13755 7650 SNA CLA 3017 13756 5652 JMP I RED30 /NO; SO JUST EXIT 3018 13757 1120 TAD SEGLIM /NUMBER OF SEGMENTS WE REMOVED FROM THIS FILE 3019 13760 7041 CIA 3020 13761 1771 TAD I REBUFF /SUBTRACT FROM THOSE THAT WE KNEW ABOUT 3021 13762 3771 DCA I REBUFF /UPDATE UFDTBL ENTRY 3022 13763 7240 STA 3023 13764 3030 DCA TABSTA /REMEMBER TO WRITE OUT THE TABLES 3024 13765 5652 JMP I RED30 /EXIT 3025 3026 13766 3567 ENS32, ENS3 3027 13767 7767 REDM9, -11 3028 13770 2462 SATREA, SATREL 3029 13771 0000 REBUFF, 0 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 71 3030 3031 4000 *4000 3032 /RENAME ROUTINE 3033 3034 14000 4511 REN0, JMS I ACC01 /IS IT ACCOUNT 1? 3035 14001 5246 JMP PASSQU /YES; GO CHANGE PASSWORD AND DISK QUOTA 3036 14002 4466 JMS I IFN01 3037 14003 1123 TAD FIOSTK+1 /PICK UP INTERNAL FILE NUMBER 3038 14004 4450 JMS I UC01 /USER-OWNER CHECK 3039 14005 5636 JMP I REN1A /USER NOT OWNER, ERROR 3040 14006 4637 JMS I FILNAM /CHECK IF THIS NEW NAME IS IN DIRECTORY 3041 14007 5640 JMP I BADNAM /YES, DON'T RENAME 3042 14010 1122 TAD FIOSTK /PICK UP INTERNAL FILE NUMBER NOW SHIFTED TO FIOSTK 3043 14011 4442 JMS I GD01 /GET THIS DIRECTORY ENTRY INTO CORE 3044 14012 3261 DCA REENTP /POINTER TO DIRECTORY ENTRY 3045 14013 1261 TAD REENTP 3046 14014 1015 TAD P0004 3047 14015 3313 DCA REPRTP /POINTER TO PROTECTION BITS 3048 14016 1713 TAD I REPRTP /PICK UP PROTECTION BITS 3049 14017 0016 AND C0020 /WRITE PROTECTED AGAINST OWNER? 3050 14020 7440 SZA 3051 14021 5636 JMP I REN1A /YES, ERROR 3052 14022 1124 TAD FIOSTK+2 /TRANSFER NEW NAME TO DIRECTORY 3053 14023 7450 SNA /IS IT A NULL NAME? 3054 14024 5640 JMP I BADNAM /YES, DON'T RENAME 3055 14025 3661 DCA I REENTP 3056 14026 2261 ISZ REENTP 3057 14027 1125 TAD FIOSTK+3 3058 14030 3661 DCA I REENTP 3059 14031 2261 ISZ REENTP 3060 14032 1126 TAD FIOSTK+4 3061 14033 3661 DCA I REENTP 3062 14034 3026 DCA BUFMOD /SCHEDULE WRITE 3063 14035 5455 JMP I FIEXIT /EXIT FROM FILE PHANTOM 3064 14036 2164 REN1A, REN1 3065 14037 2725 FILNAM, USENAM 3066 14040 1356 BADNAM, CRF30 3067 14041 1644 SEGS0, TAD I SEGCNT 3068 14042 3020 DCA FIUSAC 3069 14043 5455 JMP I FIEXIT 3070 14044 7251 SEGCNT, -SATSIZ+1 3071 14045 7002 SIFLD, CORTBL+1 3072 3073 14046 6201 PASSQU, CDF 00 3074 14047 1645 TAD I SIFLD /IS THIS REQUEST FROM SI? 3075 14050 0073 AND C0200 3076 14051 6221 CFLD 3077 14052 7440 SZA 3078 14053 5636 JMP I REN1A 3079 14054 1123 TAD FIOSTK+1 /OR IS HE TRYING ACCOUNT 0? 3080 14055 7450 SNA 3081 14056 5640 JMP I BADNAM /YES; ERROR 3082 14057 5660 JMP I .+1 3083 14060 4777 PASQU0 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 72 3084 3085 /BUILD A RETRIEVAL POINTER GIVEN RELATIVE POSITION ON RETTBL 3086 3087 /CALLING SEQUENCE: 3088 / TAD (RELATIVE POSITION) 3089 / JMS BLDP 3090 / RETURN (POINTER IN AC) 3091 3092 REENTP, 3093 14061 0000 BLDP, 0 3094 14062 3110 DCA CFH 3095 14063 7240 CLA CMA 3096 14064 1110 TAD CFH 3097 14065 7104 CLL RAL 3098 14066 7006 RTL 3099 14067 1033 TAD RETTBL 3100 14070 5661 JMP I BLDP 3101 /JMS I LINK01 3102 /MISSING SEGMENT ADD 3103 /REPLACEMENT 3104 3105 14071 0000 LINK0, 0 3106 14072 3275 DCA LINK1 3107 14073 1023 TAD GDRETP 3108 14074 4441 JMS I GE01 3109 14075 0000 LINK1, 0 /GET A DIRECTORY WORD INTO CORE 3110 14076 1075 TAD P0003 3111 14077 3313 DCA LINK2 3112 14100 1713 TAD I LINK2 3113 14101 7041 CIA 3114 14102 1671 TAD I LINK0 3115 14103 7640 SZA CLA /SEARCH THROUGH UFD UNTIL WE FIND ENTRY BEING SOUGHT 3116 14104 5314 JMP LINK3 3117 14105 2271 ISZ LINK0 3118 14106 1671 TAD I LINK0 /TAKE A BLOCK OUT OF THE CHAIN 3119 14107 3713 DCA I LINK2 3120 14110 3026 DCA BUFMOD /SCHEDULE WRITE 3121 14111 2271 ISZ LINK0 3122 14112 5671 JMP I LINK0 3123 3124 REPRTP, 3125 14113 0000 LINK2, 0 3126 3127 14114 1713 LINK3, TAD I LINK2 3128 14115 5272 JMP LINK0+1 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 73 3129 3130 /ROUTINE TO SET UP A UFDTBL ENTRY AS FOLLOWS: 3131 /WORD 0: PROJECT, PROGRAMMER NUMBER 3132 /WORD 1: -ACCESS COUNT 3133 /WORD 2: -DISK SEGMENT QUOTA (LOGIN) 3134 /WORD 3: ACTUAL NUMBER OF SEGMENTS OWNED. 3135 /(WORDS 1 AND 3 ARE INITIALLY SET TO 0.) 3136 /WORD 3 IS LOADED BY "CREATE," OR BY "EXTEND" IF IT HAS NOT PREVIOUSLY 3137 /BEEN LOADED. "CREATE" & "EXTEND" ALWAYS MODIFY WORD 3, "REDUCE" ONLY 3138 /MODIFIES WORD 3 IF IT IS NON-ZERO. 3139 3140 14116 0000 UFQUOT, 0 3141 14117 3410 DCA I INDEX /SAVE PROJECT, PROGRAMMER NUMBER 3142 14120 3410 DCA I INDEX /ZERO ACCESSES SO FAR 3143 14121 1120 TAD SEGLIM /LOGGED IN QUOTA 3144 14122 7104 CLL RAL /TIMES 2 3145 14123 1120 TAD SEGLIM /THREE 3146 14124 7004 RAL /SIX 3147 14125 7006 RTL /TWENTY FOUR 3148 14126 1120 TAD SEGLIM /TWENTY FIVE 3149 14127 7041 CIA /NEGATE 3150 14130 3410 DCA I INDEX /SAVE LOGGED-IN SEGMENT QUOTA 3151 14131 3410 DCA I INDEX /NO KNOWN SEGMENTS AS OF YET 3152 14132 5716 JMP I UFQUOT /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 74 3153 3154 /ROUTINE TO GET THE NUMBER OF A DEVICE ATTACHED TO THIS JOB 3155 3156 /CALLING SEQUENCE: 3157 / JMS LNS0 3158 / RETURN IF NONE AVAILABLE 3159 / NORMAL RETURN (DEVICE NUMBER IN AC) 3160 3161 14133 0000 LNS0, 0 3162 14134 1163 TAD DEVTBA /GLOBAL TO #DEVTBL# 3163 14135 3110 DCA CFH 3164 14136 6211 DATFLD /CDF FIELD 0 3165 14137 1510 LNS4, TAD I CFH /PICK UP POINTER TO DDB 3166 14140 7450 SNA 3167 14141 5352 JMP LNS2 /DEVICE UNASSIGNED 3168 14142 7001 IAC 3169 14143 3376 DCA LNS3 /POINTER TO SECOOND WORD OF DDB 3170 14144 1776 TAD I LNS3 3171 14145 0074 AND P0037 /PICK OFF THE JOB NUMBER OF OWNER 3172 14146 7041 CIA 3173 14147 1021 TAD FIJOB /NUMBER OF CURRENT JOB 3174 14150 7650 SNA CLA 3175 14151 5362 JMP LNS5 /THIS DEVICE IS OURS 3176 14152 2110 LNS2, ISZ CFH 3177 14153 1110 TAD CFH 3178 14154 7040 CMA 3179 14155 1177 TAD DEVOVR /GLOBAL TO "JOBTBL" 3180 14156 7640 SZA CLA 3181 14157 5337 JMP LNS4 /CONTINUE LOOKING DOWN TABLE 3182 14160 6221 LNS7, CFLD /MAKE SURE WE ARE IN THIS FIELD 3183 14161 5733 JMP I LNS0 /FOUND NOW DEVICES 3184 3185 14162 1164 LNS5, TAD DEVEND 3186 14163 7041 CIA 3187 14164 1110 TAD CFH 3188 14165 2333 ISZ LNS0 3189 14166 7500 SMA 3190 14167 5373 JMP LNS6 3191 14170 1375 TAD LNS10 3192 14171 7110 CLL RAR 3193 14172 5360 JMP LNS7 3194 3195 14173 1377 LNS6, TAD C4000 3196 14174 5360 JMP LNS7 3197 3198 14175 0070 LNS10, DEVTBE-DEVTBL 3199 14176 0000 LNS3, 0 3200 14177 4000 C4000, 4000 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 75 3201 3202 /ROUTINE TO RELEASE A DEVICE 3203 3204 4200 *4200 3205 3206 14200 0000 REL00, 0 3207 14201 4444 JMS I DTE01 /IS THIS DEVICE ASSIGNED TO THIS USER? 3208 14202 0000 REL5, 0 /SET BY DTE0 TO POINT TO DEVTBL ENTRY FOR THIS DEVICE 3209 14203 5336 JMP REL13 /NO, SO DON'T RELEASE IT 3210 14204 1602 TAD I REL5 3211 14205 3121 DCA REL6 /SAVE ADDRESS OF DDB FOR LATER 3212 14206 1121 TAD REL6 3213 14207 1075 TAD P0003 /POSITION OF TIME IN DDB 3214 14210 3350 DCA REL2 3215 14211 1750 TAD I REL2 /GET TIME ASSIGNED 3216 14212 7041 CIA 3217 14213 3350 DCA REL2 /-TIME ASSIGNED 3218 14214 6201 CDF 3219 14215 1752 TAD I RELCK1 /GET TIME NOW 3220 14216 7006 RTL 3221 14217 7006 RTL 3222 14220 0014 AND P0007 /JUST SIGNIFICANT PART OF LOW ORDER TIME 3223 14221 3351 DCA REL3 3224 14222 1753 TAD I RELCK2 3225 14223 6211 DATFLD 3226 14224 7006 RTL 3227 14225 7004 RAL 3228 14226 0106 AND P7770 /JUST INSIGNIFICANT PART OF HI ORDER 3229 14227 1351 TAD REL3 /TIME AT RELEASE 3230 14230 7100 CLL 3231 14231 1350 TAD REL2 /-TIME AT ASSIGNMENT 3232 14232 3350 DCA REL2 /TIME WE OWNED IT 3233 14233 1350 TAD REL2 3234 14234 7420 SNL /GONE THRU MIDNITE WHILE ASSIGNED? 3235 14235 1354 TAD RELCON /YES, FUDGE TO PROPER VALUE 3236 14236 7440 SZA 3237 14237 4747 JMS I DVT01 /RECORD TIME SINCE WE USED A MEASURABLE AMOUNT 3238 14240 7120 STL 3239 14241 1202 TAD REL5 3240 14242 1346 TAD RELCDR /IS IT A CARD READER OR DECTAPE OR RK05? 3241 14243 7510 SPA 3242 14244 7010 RAR /NO - IS IT A KEYBOARD OR THE PTR? 3243 14245 7420 SNL 3244 14246 5315 JMP REL11 /EITHER KEYBOARD, PTR, CDR, DTA, OR RK05 3245 14247 1345 TAD RELREG /EITHER PTP OR LPT /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 76 3246 3247 14250 3121 REL8, DCA REL6 /ENTER HERE FROM REL12 FOR TELEPRINTER 3248 14251 7240 STA 3249 14252 1602 TAD I REL5 3250 14253 3010 DCA INDEX /POINT TO WORD 0 OF DDB (AUTOINDEXED) 3251 14254 1410 TAD I INDEX /CHECK STATUS IF TELEPRINTER 3252 14255 7710 SPA CLA 3253 14256 5270 JMP REL4 /HE'S IN THE ^S CONDITION - FLUSH HIM/HER OUT 3254 14257 3410 DCA I INDEX /CLEAR THE JOB NUMBER 3255 14260 2010 ISZ INDEX 3256 14261 2010 ISZ INDEX 3257 14262 1410 TAD I INDEX /CHECK FILL POINTER 3258 14263 7640 SZA CLA 3259 14264 5301 JMP REL9 /STILL BUSY - LET "CONOUT" RELEASE IT 3260 14265 1121 TAD REL6 3261 14266 7640 SZA CLA /ASSIGNABLE DEVICE? 3262 14267 5303 JMP REL7 /YES 3263 14270 1602 REL4, TAD I REL5 3264 14271 6202 CIF 00 3265 14272 4755 JMS I RELTBL /MAKE SURE THE BUFFER IS CLEAR 3266 14273 6211 DATFLD 3267 14274 1602 TAD I REL5 /RELEASE THE DDB 3268 14275 4403 JMS I RETBK1 3269 14276 7200 CLA 3270 14277 6211 DATFLD 3271 14300 3602 DCA I REL5 3272 14301 6221 REL9, CFLD 3273 14302 5600 JMP I REL00 3274 14303 6222 REL7, CIF 20 /INHIBIT INTERRUPTS 3275 14304 1521 TAD I REL6 3276 14305 7104 CLL RAL 3277 14306 7450 SNA 3278 14307 5270 JMP REL4 3279 14310 7510 SPA 3280 14311 7120 STL 3281 14312 7010 RAR 3282 14313 3521 DCA I REL6 3283 14314 5301 JMP REL9 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 77 3284 3285 14315 7700 REL11, SMA CLA /IS IT A KEYBOARD OR THE PTR? 3286 14316 5322 JMP REL12 /NO 3287 14317 1121 TAD REL6 3288 14320 6202 CIF 00 3289 14321 4755 JMS I RELTBL /FLUSH OUT THE BUFFER 3290 14322 1121 REL12, TAD REL6 3291 14323 4403 JMS I RETBK1 /RELEASE THE DDB 3292 14324 7200 CLA 3293 14325 6211 DATFLD 3294 14326 3602 DCA I REL5 /REMOVE FROM DEVTBL 3295 14327 1164 TAD DEVEND 3296 14330 7041 CIA 3297 14331 1202 TAD REL5 3298 14332 7700 SMA CLA 3299 14333 5301 JMP REL9 3300 14334 2202 ISZ REL5 3301 14335 5250 JMP REL8 3302 3303 14336 6201 REL13, CDF 3304 14337 1560 TAD I JOB 3305 14340 0073 AND C0200 3306 14341 6221 CFLD 3307 14342 7640 SZA CLA /CALLED BY SI?? 3308 14343 5467 JMP I LGI201 /YES, INDICATE ERROR WITH AC=-1 3309 14344 5600 JMP I REL00 /NO, UUO CALL 3310 14345 0236 RELREG, OUTREG+NULINE+3 3311 14346 4744 RELCDR, -DEVTBE-4 3312 14347 3342 DVT01, DVT0 3313 14350 0000 REL2, 0 3314 14351 0000 REL3, 0 3315 14352 0051 RELCK1, CLK1 3316 14353 0050 RELCK2, CLK2 3317 14354 3227 RELCON, 3227 /FUDGE FOR MIDNIGHT OVERFLOW 3318 14355 6572 RELTBL, SICLR 3319 14356 0100 P0100, 100 3320 14357 0000 FIXSCH, 0 3321 14360 7001 IAC 3322 14361 3202 DCA REL5 3323 14362 1602 TAD I REL5 3324 14363 0356 AND P0100 3325 14364 7650 SNA CLA 3326 14365 5757 JMP I FIXSCH 3327 14366 1177 TAD DEVOVR 3328 14367 7041 CIA 3329 14370 1010 TAD INDEX 3330 14371 6203 FIXOUT, CIF CDF 3331 14372 3555 DCA I FIPJOB 3332 14373 5576 WAIT /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 78 3333 3334 14374 0215 EXCEED, 215;212;"[;" ;" ;" ;" ;" ;" ;" ;"E;"X;"C;"E;"E;"D;"I;"N;"G 14375 0212 14376 0333 14377 0240 14400 0240 14401 0240 14402 0240 14403 0240 14404 0240 14405 0240 14406 0305 14407 0330 14410 0303 14411 0305 14412 0305 14413 0304 14414 0311 14415 0316 14416 0307 3335 14417 0240 " ;"D;"I;"S;"K;" ;"Q;"U;"O;"T;"A;"];215;212;0 14420 0304 14421 0311 14422 0323 14423 0313 14424 0240 14425 0321 14426 0325 14427 0317 14430 0324 14431 0301 14432 0335 14433 0215 14434 0212 14435 0000 3336 /COMPLETION OF LOGOUT ROUTINE 3337 /REMOVES JOB FROM PERMANENT MONITOR TABLES 3338 /MUST BE DONE LAST, SINCE WE NEED THE JOB STATUS BLOCKS 3339 /TO INDICATE ANY ERRORS IN THE FIP I/O 3340 3341 14436 1267 LGO4, TAD LGO500 /RESTORE THE FIP EXIT 3342 14437 6221 CFLD 3343 14440 3671 DCA I LGOFIX 3344 14441 1021 TAD FIJOB /SEE IF HE OWNS ANY CORE FIELDS 3345 14442 6202 CIF 3346 14443 4570 CORE /SEARCH CORE TABLE FOR HIM/HER 3347 14444 0637 FIP SI CJOB 3348 14445 5253 JMP LGO5 /NO; NOTHING TO RELEASE 3349 14446 0014 AND P0007 /YES; RELEASE THE FIELD 3350 14447 1162 TAD CORTBA 3351 14450 3110 DCA CFH /POINTS TO ENTRY IN CORTBL 3352 14451 6201 CDF 3353 14452 3510 DCA I CFH /ZERO THE ENTRY 3354 14453 1021 LGO5, TAD FIJOB /RETURN STATUS BLOCKS 3355 14454 1177 TAD DEVOVR /START OF JOB TABLE (END OF DEVTBL) 3356 14455 3370 DCA LGO6 /POINTS TO JOB TABLE ENTRY 3357 14456 6211 DATFLD /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 79 3358 14457 1770 TAD I LGO6 /GET ADDRESS OF JOB STATUS 3359 14460 4670 JMS I LGOBLS /RETURN STATUS 3360 14461 6211 DATFLD 3361 14462 3561 DCA I JOBDAT /CLEAR JOBDAT 3362 14463 3770 DCA I LGO6 /CLEAR POINTER IN JOBTABLE 3363 14464 6201 CDF 3364 14465 3560 DCA I JOB /CLEAR JOB (SO SAVJOB WON'T SAVE US) 3365 14466 5667 JMP I .+1 /AND NOW GO DO FIX50 3366 14467 2754 LGO500, FIX50 3367 14470 2323 LGOBLS, RETBLS 3368 14471 3442 LGOFIX, FIX500 3369 14472 1123 LGO1, TAD FIOSTK+1 /LOGOUT WITH AC=0? 3370 14473 7640 SZA CLA 3371 14474 5467 JMP I LGI201 /NO, SO IT'S AN ERROR 3372 14475 1021 TAD FIJOB 3373 14476 1031 TAD JOBTAB 3374 14477 3110 DCA CFH /GET HIS/HER PROJ-PROG # 3375 14500 1510 TAD I CFH 3376 14501 7041 CIA 3377 14502 3124 DCA FIOSTK+2 /SAVE HIS/HER # 3378 14503 1031 TAD JOBTAB 3379 14504 3010 DCA INDEX /INITIALIZE TO START OF TABLES 3380 14505 1322 TAD LGOMAX /-JOBMAX 3381 14506 3125 DCA FIOSTK+3 /COUNT OF JOBS TO CHECK 3382 14507 3126 DCA FIOSTK+4 /COUNT OF MATCHES 3383 14510 1410 TAD I INDEX 3384 14511 1124 TAD FIOSTK+2 /COMPARE 3385 14512 7650 SNA CLA 3386 14513 2126 ISZ FIOSTK+4 /EXACT MATCH - INDEX COUNT 3387 14514 2125 ISZ FIOSTK+3 /DONE? 3388 14515 5310 JMP .-5 /NO 3389 14516 7240 STA /YES - RETURN # OF MATCHES -1 3390 14517 1126 TAD FIOSTK+4 3391 14520 3020 DCA FIUSAC 3392 14521 5455 JMP I FIEXIT /AND AWAY 3393 3394 14522 7754 LGOMAX, -JOBMAX /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 80 3395 3396 14523 0000 OPN11, 0 3397 14524 3352 DCA OPN13 3398 14525 1124 TAD FIOSTK+2 /GET RETRIEVAL POINTER OF UFD BEING ACCESSED 3399 14526 7041 CIA 3400 14527 1033 TAD RETTBL /IS IT THE MFD? 3401 14530 7650 SNA CLA 3402 14531 5363 JMP OPN14 /MFD OR UFD, READ OK/WRITE NEVER OK 3403 14532 4511 JMS I ACC01 /IS HE THE SYSTEM MANAGER? 3404 14533 5344 JMP OPN12 /YES; SKIP PROTECTION CHECK 3405 14534 1723 TAD I OPN11 /GET PROPER TEST BITS 3406 14535 0014 AND P0007 /JUST TEST FOR READ PROTECTION FIRST 3407 14536 0752 AND I OPN13 /COMPARE AGAINST FILE'S PROTECTION WORD 3408 14537 7640 SZA CLA 3409 14540 5767 JMP I OPNPRA /PROTECTION ERROR 3410 14541 1723 TAD I OPN11 /READ OK, GET TEST BITS FOR WRITE 3411 14542 7104 CLL RAL /CHECK FOR WRITE PROTECTION 3412 14543 0752 AND I OPN13 3413 14544 7040 OPN12, CMA 3414 14545 3370 DCA LGO6 /-1 IF OK TO WRITE 3415 14546 1405 TAD I ZDS1 /SOME MORE CONDITIONS TO TEST 3416 14547 3352 DCA OPN13 3417 14550 1124 TAD FIOSTK+2 3418 14551 4766 JMS I OPN16 /IS HE THE ONLY PERSON TO OPEN THE FILE? 3419 14552 0000 OPN13, 0 3420 14553 5363 JMP OPN14 /NO 3421 14554 1113 TAD BASSWT 3422 14555 7041 CIA 3423 14556 6211 DATFLD 3424 14557 7440 SZA 3425 14560 3516 DCA I BASWIN /MAKE SURE THE BASIC WINDOW GETS LOADED 3426 14561 6221 CFLD 3427 14562 2370 ISZ LGO6 /IS HE ALLOWED TO MODIFY IT? 3428 14563 1015 OPN14, TAD P0004 /NO, SO WRITE PROTECT BIT IS ON 3429 14564 2323 ISZ OPN11 /SKIP ON RETURN 3430 14565 5723 JMP I OPN11 3431 14566 2330 OPN16, ENS0 3432 14567 0552 OPNPRA, OPNPRE 3433 3434 3435 LGO6, 3436 14570 0000 FIX40, 0 3437 14571 3135 DCA FLPARB+3 3438 14572 1135 TAD FLPARB+3 3439 14573 3137 DCA FLPARB+5 3440 14574 7240 CLA CMA 3441 14575 1137 TAD FLPARB+5 3442 14576 3136 DCA FLPARB+4 3443 14577 5770 JMP I FIX40 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 81 3444 3445 4600 *4600 3446 14600 3124 TTYTBA, TTYTBL 3447 14601 0051 CLK1A, CLK1 3448 14602 0050 CLK2A, CLK2 3449 14603 3510 RESET, DCA I CFH 3450 14604 4470 FGETJT 3451 14605 0016 JOBACC 3452 14606 3371 DCA ADDR 3453 14607 6211 DATFLD 3454 14610 1124 TAD FIOSTK+2 3455 14611 3771 DCA I ADDR /PLUG HIS/HER ACCOUNT # INTO HIS JOB STATUS BLOCKS 3456 14612 1021 TAD FIJOB /GET JOB # 3457 14613 1200 TAD TTYTBA 3458 14614 3371 DCA ADDR 3459 14615 1771 TAD I ADDR /GET LINE # 3460 14616 7104 CLL RAL 3461 14617 1163 TAD DEVTBA /FIND THE DDB 3462 14620 3371 DCA ADDR 3463 14621 1075 TAD P0003 3464 14622 1771 TAD I ADDR 3465 14623 3371 DCA ADDR 3466 14624 6201 CDF 3467 14625 1601 TAD I CLK1A 3468 14626 7006 RTL 3469 14627 7006 RTL 3470 14630 0014 AND P0007 3471 14631 3110 DCA CFH 3472 14632 1602 TAD I CLK2A 3473 14633 7006 RTL 3474 14634 7004 RAL 3475 14635 0106 AND P7770 3476 14636 1110 TAD CFH 3477 14637 6211 DATFLD /NOW RESET THE 3478 14640 3771 DCA I ADDR /ASSIGN TIME 3479 14641 5642 JMP I .+1 /THEN EXIT 3480 14642 3165 TABOUT /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 82 3481 3482 14643 0000 BASCO0, 0 3483 14644 4466 JMS I IFN01 /JUST RETURN INTERNAL FILE # IN FIOSTK+1 3484 14645 1123 TAD FIOSTK+1 3485 14646 4453 JMS I CL01 /CLOSE ANY FILE THAT IS OPEN 3486 14647 1125 TAD FIOSTK+3 /MAY BE 3487 14650 7450 SNA /IS IT A NULL FILE NAME? 3488 14651 5675 JMP I OPN3A /YES, ERROR RETURN 3489 14652 1276 TAD OPN3A+1 /COMPARE BA 3490 14653 7640 SZA CLA 3491 14654 5271 JMP BASSET /NO MATCH 3492 14655 1124 TAD FIOSTK+2 /IS ACCT # 2? 3493 14656 7450 SNA 3494 14657 4464 JMS I JBLD0 /WHAT'S HIS/HER ACCOUNT? 3495 14660 7112 CLL RTR 3496 14661 7650 SNA CLA 3497 14662 1126 TAD FIOSTK+4 /COMPARE SI 3498 14663 1277 TAD OPN3A+2 3499 14664 7650 SNA CLA 3500 14665 1127 TAD FIOSTK+5 3501 14666 1300 TAD OPN3A+3 /COMPARE C 3502 14667 7650 SNA CLA 3503 14670 7040 CMA /IF BASIC, BASSWT=-1 3504 14671 3113 BASSET, DCA BASSWT /IF NOT, BASSWT=0 3505 14672 1123 TAD FIOSTK+1 3506 14673 4463 JMS I EBLD0 /GET PTR TO ENTTBL WORD 1 RELATIVE PTR WORD 2 ADDRESS IN UFD 3507 14674 5643 JMP I BASCO0 /RETURN 3508 14675 0551 OPN3A, OPN3 3509 14676 3537 -4241 /-BA 3510 14677 1427 -6351 /-SI 3511 14700 3500 -4300 /-C 3512 3513 14701 0000 CLOBAS, 0 3514 14702 4403 JMS I RETBK1 3515 14703 3373 DCA BAS3 3516 14704 1373 TAD BAS3 3517 14705 7041 CIA 3518 14706 1116 TAD BASWIN 3519 14707 7650 SNA CLA 3520 14710 5314 JMP CLOBA1 3521 14711 1373 TAD BAS3 3522 14712 4403 JMS I RETBK1 3523 14713 7610 CLA SKP 3524 14714 7240 CLOBA1, CLA CMA 3525 14715 5701 JMP I CLOBAS /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 83 3526 3527 14716 0000 BAS0, 0 3528 14717 3347 DCA BAS1 /SAVE BUFFER ADDRESS OF RETRIEVAL WINDOW 3529 14720 1116 TAD BASWIN /BASIC WINDOW ADDRESS 3530 14721 3371 DCA ADDR /GET BUFFER ADDRESS READY 3531 14722 1347 BAS5, TAD BAS1 / 3532 14723 3372 DCA BAS2 3533 14724 1105 TAD C7771 3534 14725 3373 DCA BAS3 /COUNT OF 7 SEGS PER WINDOW 3535 14726 2372 BAS4, ISZ BAS2 3536 14727 6221 CFLD 3537 14730 1772 TAD I BAS2 /PICK UP THE SEG # 3538 14731 2371 ISZ ADDR 3539 14732 7450 SNA 3540 14733 5352 JMP BAS6 3541 14734 6211 DATFLD 3542 14735 3771 DCA I ADDR /SAVE IT IN WINDOW 3543 14736 2373 ISZ BAS3 /COUNT 3544 14737 5326 JMP BAS4 /STILL IN SAME BLOCK 3545 14740 6221 CFLD 3546 14741 1747 TAD I BAS1 /CHANGE THE BLOCK 3547 14742 7450 SNA 3548 14743 5352 JMP BAS6 /NO MORE SEGMENTS 3549 14744 3347 DCA BAS1 3550 14745 1124 TAD FIOSTK+2 /GET THIS BLOCK OF UFD IN BUFFER 3551 14746 4441 JMS I GE01 3552 14747 0000 BAS1, 0 3553 14750 3347 DCA BAS1 /SAVE THE BUFFER ADDRESS CONTAINING THE NEEDED BLOCK 3554 14751 5322 JMP BAS5 /CONTINUE 3555 14752 7450 BAS6, SNA 3556 14753 1747 TAD I BAS1 3557 14754 7640 SZA CLA 3558 14755 5774 JMP I BAS123 /BASIC MUST BE 39 SEGMENTS OR LESS TO USE SPECIAL WINDOW 3559 14756 1371 TAD ADDR 3560 14757 7700 SMA CLA 3561 14760 5365 JMP .+5 3562 14761 6211 DATFLD 3563 14762 3771 DCA I ADDR 3564 14763 2371 ISZ ADDR 3565 14764 5362 JMP .-2 3566 14765 6211 DATFLD 3567 14766 7240 CLA CMA 3568 14767 3516 DCA I BASWIN /-1 IN FIRST WORD TO MARK BASIC WINDOW 3569 14770 5716 JMP I BAS0 3570 14771 0000 ADDR, 0 3571 14772 0000 BAS2, 0 3572 14773 0000 BAS3, 0 3573 14774 0532 BAS123, OPN123 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 84 3574 3575 /ROUTINE TO LET SYSTEM MANAGER CHANGE PASSWORDS AND DISK QUOTAS 3576 3577 14775 6525 UFDNAM, RTABLE 3578 14776 0000 0 3579 3580 14777 3376 PASQU0, DCA UFDNAM+1 /SAVE ACCOUNT NUMBER TO SEARCH FOR 3581 15000 7040 CMA 3582 15001 4440 JMS I DS01 /SEARCH MFD FOR THIS ACCOUNT 3583 15002 4775 UFDNAM 3584 15003 5242 JMP PASNOT /ACCOUNT NOT FOUND IN MFD 3585 15004 3010 DCA INDEX /SAVE POINTER TO OLD PASSWORD 3586 15005 1124 TAD FIOSTK+2 /FIRST TWO CHARACTERS OF NEW PASSWORD 3587 15006 3410 DCA I INDEX /SAVE IN MFD NAME BLOCK 3588 15007 1125 TAD FIOSTK+3 /SECOND TWO CHARACTERS OF NEW PASSWORD 3589 15010 3410 DCA I INDEX /SAVE IN MFD 3590 15011 2010 ISZ INDEX /SKIP PAST LINK TO NEXT UFD 3591 15012 1126 TAD FIOSTK+4 /GET NEW DISK QUOTA 3592 15013 3410 DCA I INDEX /SAVE NEW QUOTA 3593 15014 3026 DCA BUFMOD /REMEMBER TO WRITE OUT THE MFD SEGMENT 3594 15015 1123 TAD FIOSTK+1 /SEE IF THIS ACCOUNT IS CURRENTLY IN THE UFDTBL 3595 15016 4452 JMS I UTS01 3596 15017 5455 JMP I FIEXIT /NOT THERE 3597 15020 2107 ISZ UTPRNU /POINTS TO -QUOTA ENTRY 3598 15021 7240 STA 3599 15022 1123 TAD FIOSTK+1 /IS IT THE QUOTA FOR THE "GRACE SPACE"? 3600 15023 7650 SNA CLA 3601 15024 5235 JMP PASQU1 /YES 3602 15025 1126 TAD FIOSTK+4 /TRIM OFF THE LOGOUT PORTION OF THE QUOTA 3603 15026 0013 AND P0077 3604 15027 3126 DCA FIOSTK+4 3605 15030 1126 TAD FIOSTK+4 3606 15031 7104 CLL RAL /MULTIPLY BY TWO 3607 15032 1126 TAD FIOSTK+4 /THREE 3608 15033 7004 RAL /SIX 3609 15034 7006 RTL /TWENTY FOUR 3610 15035 1126 PASQU1, TAD FIOSTK+4 /TWENTY FIVE; OR ACTUAL COUNT IF FOR "GRACE SPACE" 3611 15036 7041 CIA /NEGATE THE RESULT 3612 15037 3507 DCA I UTPRNU /SAVE AWAY IN THE UFDTBL 3613 15040 5641 JMP I .+1 3614 15041 3165 TABOUT 3615 3616 15042 1162 PASNOT, TAD P7000 /RETURN FILE NOT FOUND 3617 15043 3020 DCA FIUSAC 3618 15044 5455 JMP I FIEXIT /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 85 3619 3620 /SUBROUTINE TO FIND AN EMPTY DIRECTORY ENTRY 3621 3622 /CALLING SEQUENCE: 3623 / TAD (POINTER TO UFD RETRIEVAL INFORMATION) 3624 / JMS DE0 3625 / BAD RETURN (COULD NOT FIND A FREE ENTRY) 3626 / NORMAL RETURN (POINTER TO ENTRY IN AC) 3627 3628 15045 0000 DE0, 0 3629 15046 3334 DCA DERETP /SAVE RETRIEVAL PTR 3630 15047 3300 DCA DE2 /ZERO THE ADDRESS IN UFD 3631 15050 1025 TAD BUFSTA /IS THERE A SEGMENT IN THE BUFFER? 3632 15051 7700 SMA CLA 3633 15052 5273 JMP DE7 /NO, SO START FROM THE BEGINNING 3634 15053 1736 TAD I GERETA /GET THE SEGMENT IN CORE 3635 15054 7040 CMA 3636 15055 3337 DCA NSEGCR 3637 15056 1334 TAD DERETP /GET RETRIEVAL PTR FOR INCREMENT 3638 15057 3335 DCA UFDPTR 3639 15060 1735 DE5, TAD I UFDPTR 3640 15061 7450 SNA /IS THERE A SEGMENT? 3641 15062 5273 JMP DE7 /NO, START FROM 0 LOC IN UFD 3642 15063 1337 TAD NSEGCR /YES, DOES IT AGREE WITH THE SEGMENT IN CORE? 3643 15064 7650 SNA CLA 3644 15065 5275 JMP DE6 /YES, START SEARCHING AT THIS POINT 3645 15066 1300 TAD DE2 /NO, INCREMENT THE ADDR 3646 15067 1156 TAD C0400 3647 15070 3300 DCA DE2 3648 15071 2335 ISZ UFDPTR /POINT TO NEXT SEGMENT IN RETRIEVAL BLOCK 3649 15072 5260 JMP DE5 /GO BACK 3650 15073 3300 DE7, DCA DE2 /INDICATE THAT SEARCH IS FROM WORD 0 3651 15074 7240 STA 3652 15075 3733 DE6, DCA I UFD01 /SAVE SECOND PASS FLAG 3653 15076 1334 DE1, TAD DERETP 3654 15077 4441 JMS I GE01 /GET ENTRY INTO CORE 3655 15100 0000 DE2, 0 3656 15101 7450 SNA /SKIP IF ENTRY EXISTS 3657 15102 5324 JMP DE4 /DID NOT EXIST, EXTEND UFD 3658 15103 3332 DCA DEBUFP 3659 15104 1732 TAD I DEBUFP /FIRST WORD OF ENTRY 3660 15105 7640 SZA CLA 3661 15106 5320 JMP DE3 /NOT EMPTY, LOOK AT NEXT ENTRY 3662 15107 2332 ISZ DEBUFP /ZERO COULD MEAN END OF STRING OF RETRIEVAL INFORMATION BLOCKS 3663 15110 1732 TAD I DEBUFP /LOOK AT SECOND WORD OF ENTRY 3664 15111 7640 SZA CLA /IF ZERO, EMPTY ENTRY 3665 15112 5320 JMP DE3 /NOT EMPTY, KEEP LOOKING 3666 15113 1300 TAD DE2 /PICK UP ENTRY POINTER 3667 15114 7450 SNA /ENTRY 0 NEVER AVAILABLE 3668 15115 5320 JMP DE3 3669 15116 2245 ISZ DE0 /POINT TO NORMAL RETURN 3670 15117 5645 JMP I DE0 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 86 3671 3672 15120 1114 DE3, TAD C0010 /INCREMENT TO NEXT ENTRY 3673 15121 1300 TAD DE2 3674 15122 3300 DCA DE2 /SAVE NEXT ENTRY INDEX 3675 15123 5276 JMP DE1 /LOOK AT NEXT ONE 3676 3677 15124 2733 DE4, ISZ I UFD01 /HAVE WE TRIED FROM THE BEGINNING YET? 3678 15125 5273 JMP DE7 /NO, WELL TRY IT THEN... 3679 15126 1334 TAD DERETP 3680 15127 4733 JMS I UFD01 /TRY EXTENDING THE UFD 3681 15130 5645 JMP I DE0 /TOO BAD, CAN'T EXTEND UFD 3682 15131 5276 JMP DE1 /NOW WE HAVE PLENTY OF ROOM 3683 15132 0000 DEBUFP, 0 3684 15133 1706 UFD01, UFD0 3685 15134 0000 DERETP, 0 3686 15135 0000 UFDPTR, 0 3687 15136 2653 GERETA, RDCURR 3688 15137 0000 NSEGCR, 0 3689 3690 /ROUTINE TO OUTPUT QUOTA EXCEEDED MESSAGE 3691 15140 0000 EXTEL0, 0 3692 15141 6211 DATFLD 3693 15142 1021 TAD FIJOB /CURRENT JOB NUMBER 3694 15143 1366 TAD TTYTAB /POINTS AT POSITION IN TTYTBL 3695 15144 3245 DCA DE0 3696 15145 1645 TAD I DE0 /GET CONSOLE NUMBER FOR THIS JOB 3697 15146 7124 STL RAL /TIMES 2 PLUS 1 3698 15147 1163 TAD DEVTBA /INDEX TO OUTPUT DDB 3699 15150 6201 CDF 3700 15151 3767 DCA I CONDVA /STORE FOR FIELD 0 PRINT ROUTINE 3701 15152 6221 CFLD 3702 15153 1370 TAD EXTMES /GET MESSAGE POINTER 3703 15154 3010 DCA INDEX 3704 15155 1410 EXTEL1, TAD I INDEX /GET CHARACTER OF THE MESSAGE 3705 15156 7450 SNA /ANY LEFT? 3706 15157 5740 JMP I EXTEL0 /NO; SO GO EXTEND 3707 15160 6203 CIF CDF 00 3708 15161 3771 DCA I FICHAR /STORE FOR PRINT OUT ROUTINE 3709 15162 6221 CFLD 3710 15163 4573 PRINT /SEND MESSAGE #[EXCEEDING DISK QUOTA]# 3711 15164 5740 JMP I EXTEL0 /RAN OUT OF SPACE IN THE OUTPUT BUFFER (TOO BAD!) 3712 15165 5355 JMP EXTEL1 /BACK FOR NEXT CHARACTER 3713 3714 15166 3124 TTYTAB, TTYTBL 3715 15167 0132 CONDVA, CONDBA 3716 15170 4373 EXTMES, EXCEED-1 3717 15171 0031 FICHAR, TTCHAR /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 87 3718 3719 /ROUTINE TO CLEAR ALL CPU AND DEVICE TIME ACCUMULATORS IN THE MFD 3720 /THIS IS USED BY THE #RESET# FUNCTION IN THE CUSP #CAT# 3721 15172 7201 LGRES0, CLA IAC /SET RESET FLAG IN DIRECTORY SEARCH ROUTINE 3722 15173 3403 DCA I RETBK1 3723 15174 1003 TAD RETBK1 3724 15175 3107 DCA EXQ1 /SET POINTER SO FLAG WILL CLEAR ON COMPLETION 3725 15176 1033 TAD RETTBL 3726 15177 3023 DCA GDRETP /SET RETRIEVAL POINTER 3727 15200 4203 JMS LOQUO /GO DO THE RESET 3728 15201 7040 CMA /SHOULD RETURN A ZERO IN AC 3729 15202 5240 JMP EXTQU1 3730 3731 /ROUTINE TO COUNT TOTAL SEGMENTS OWNED BY A UFD AND 3732 /SAVE THE RESULT IN WORD 3 OF THE UFDTBL ENTRY FOR THE RESPECTIVE UFD 3733 /CALL: 3734 / EXQ1 POINTS TO WORD 3 OF CORRECT UFDTBL ENTRY 3735 / JMS LOQUO 3736 / RETURN (ENTRY 3 LOADED, TOTAL ALSO IN AC) 3737 3738 EXQ3, 3739 15203 0000 LOQUO, 0 3740 15204 3024 DCA WNDREM /FUDGE A FILE NAME BEGINNING WITH TWO SPACES 3741 15205 4440 JMS I DS01 /SEARCH DIRECTORY TO DETERMINE SEGMENT COUNT 3742 15206 0023 GDRETP /(HOPE NO ONE SCRAMBLES LOC. 23-26 ON PAGE 0!!) 3743 15207 7610 CLA SKP /GOOD - COULDN'T FIND SUCH A FILE 3744 15210 5471 JMP I DIRBAD /FOUND IT! OOPS! 3745 15211 1120 TAD SEGLIM /GET THE TOTAL FROM THE DIRECTORY SEARCH 3746 15212 3507 DCA I EXQ1 /SAVE IN UFDTBL 3747 15213 1123 TAD FIOSTK+1 /INTERNAL FILE NUMBER? 3748 15214 7500 SMA /IF THIS IS NOT A "RESET" WE MUST RELOAD 3749 15215 4442 JMS I GD01 /THE CORRECT DIRECTORY SEGMENT 3750 15216 3121 DCA REL6 /SAVE POINTER TO NAME BLOCK 3751 15217 1120 TAD SEGLIM /RETURN WITH CURRENT TOTAL 3752 15220 5603 JMP I LOQUO 3753 3754 3755 15221 7200 EXTQU8, CLA /WE'VE BEEN HERE BEFORE FOR THIS GUY 3756 15222 6221 CFLD 3757 15223 1334 TAD EXQ2 /WILL THIS EXTEND CARRY 3758 15224 1507 TAD I EXQ1 /THIS FILE ACROSS THE QUOTA BOUNDARY AGAIN? 3759 15225 7740 SMA SZA CLA /(I.E. HAS HE REDUCED SINCE LAST EXTEND?) 3760 15226 5235 JMP EXTQU9 /NO; HE'S STILL ABOVE QUOTA, EXTEND QUIETLY 3761 15227 1374 EXTQU6, TAD EXFILE /ADDRESS WITHIN MESSAGE TO STORE FILE NAME 3762 15230 3010 DCA INDEX 3763 15231 4316 JMS EXTNAM /CHAR 1 & 2 OF FILE NAME 3764 15232 4316 JMS EXTNAM /CHAR 3 & 4 OF FILE NAME 3765 15233 4316 JMS EXTNAM /CHAR 5 & 6 OF FILE NAME 3766 15234 4775 JMS I EXTELL /NOTIFY USER THAT QUOTA IS BEING EXCEEDED 3767 15235 7200 EXTQU9, CLA 3768 15236 5642 JMP I EXTQU0 /EXIT TO EXTEND FILE AS REQUESTED 3769 3770 15237 1124 EXTQU5, TAD FIOSTK+2 /NUMBER OF SEGMENTS HE WON'T GET 3771 15240 3020 EXTQU1, DCA FIUSAC /PASS RESULT BACK TO THE USER 3772 15241 5455 JMP I FIEXIT /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 88 3773 3774 /ROUTINE TO CHECK LOGIN QUOTA BEFORE EXTENDING A FILE 3775 3776 15242 0000 EXTQU0, 0 3777 15243 1023 TAD GDRETP /COMPARE RETRIEVAL POINTER 3778 15244 7041 CIA 3779 15245 1033 TAD RETTBL /AGAINST THE MFD'S ENTRY 3780 15246 7650 SNA CLA /IS IT FROM THE SYSTEM MANAGER? 3781 15247 5771 JMP I VIOLAT /GET OUT QUICK, BEFORE HE DESTROYS THE SYSTEM 3782 15250 1124 TAD FIOSTK+2 /NUMBER OF SEGMENTS TO BE ADDED 3783 15251 7510 SPA /IS HE BEING REASONABLE? 3784 15252 5240 JMP EXTQU1 /NO - HE DESERVES TO FAIL! 3785 15253 7141 CLL CIA 3786 15254 1773 TAD I SATSEG /ARE THERE THAT MANY SEGMENTS LEFT ON THE SYSTEM? 3787 15255 7620 SNL CLA 3788 15256 5237 JMP EXTQU5 /NO; SO DON'T GIVE ANY 3789 15257 1023 TAD GDRETP /RETRIEVAL POINTER 3790 15260 4772 JMS I ENS33 /CONVERT TO RELATIVE ENTRY NUMBER 3791 15261 7126 STL RTL /TIMES FOUR PLUS TWO 3792 15262 1032 TAD UFDTBL /POINTS AT -LOGIN QUOTA 3793 15263 3107 DCA EXQ1 /SAVE POINTER 3794 15264 1507 TAD I EXQ1 /GET NEGATIVE QUOTA 3795 15265 3334 DCA EXQ2 /AND SAVE 3796 15266 2107 ISZ EXQ1 /POINTS AT CURRENTLY OWNED COUNT 3797 15267 1507 TAD I EXQ1 /GET HIS/HER PRESENT TOTAL 3798 15270 7450 SNA /HAS THE COUNT BEEN SET UP YET? 3799 15271 4203 JMS LOQUO /NO; GO FIGURE IT OUT 3800 15272 1124 TAD FIOSTK+2 /ADD THE NUMBER HE WANTS 3801 15273 1334 TAD EXQ2 /AND SUBTRACT FROM QUOTA 3802 15274 7550 SPA SNA /WILL THIS EXCEED THE QUOTA FOR THIS ACCOUNT? 3803 15275 5235 JMP EXTQU9 /NO; GO EXTEND 3804 15276 1777 TAD I GRACE /WILL IT GO BEYOND THE #GRACE SPACE#? 3805 15277 7740 SMA SZA CLA 3806 15300 5237 JMP EXTQU5 /YES; DON'T BOTHER EXTENDING 3807 15301 1123 TAD FIOSTK+1 /SEE IF THIS FILE IS ALREADY IN THE GRACE AREA 3808 15302 4404 JMS I LNK01 /GET POINTER TO FILE CONTROL BLOCK 3809 15303 1017 TAD FILPRP /POINT TO STATUS WORD 3810 15304 3203 DCA EXQ3 3811 15305 6211 DATFLD 3812 15306 1603 TAD I EXQ3 /GET CURRENT STATUS FOR THIS FILE 3813 15307 7010 RAR 3814 15310 7430 SZL /IS THIS FILE IN THE GRACE AREA? 3815 15311 5221 JMP EXTQU8 /MAYBE; SEE IF HE'S REENTERING 3816 15312 7124 STL RAL /SET GRACE BIT 3817 15313 3603 DCA I EXQ3 3818 15314 6221 CFLD 3819 15315 5227 JMP EXTQU6 /SEND MESSAGE, THEN GO EXTEND /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 89 3820 3821 /ROUTINE TO PLANT FILE NAME INTO "EXCEEDING QUOTA" MESSAGE 3822 3823 15316 0000 EXTNAM, 0 3824 15317 1521 TAD I REL6 /GET PART OF FILE NAME 3825 15320 7012 RTR 3826 15321 7012 RTR 3827 15322 7012 RTR 3828 15323 0013 AND P0077 /SAVE LEFT BYTE 3829 15324 1376 TAD P0240 /CONVERT TO ASCII 3830 15325 3410 DCA I INDEX /STORE IN THE MESSAGE AREA 3831 15326 1521 TAD I REL6 /NOW FOR THE RIGHT BYTE 3832 15327 0013 AND P0077 3833 15330 1376 TAD P0240 /CONVERT TO ASCII 3834 15331 3410 DCA I INDEX /SAVE RIGHT BYTE 3835 15332 2121 ISZ REL6 /POINT TO NEXT CHARACTER 3836 15333 5716 JMP I EXTNAM 3837 3838 /ROUTINE TO CHECK FOR THE SAFE REDUCTION OF A UFD 3839 /TWO CONDITIONS MUST BE MET: 3840 / THE ACCOUNT CANNOT BE IN USE TO ANYONE 3841 / THE ACCOUNT MUST HAVE AN EMPTY DIRECTORY 3842 3843 EXQ2, 3844 15334 0000 REDUF0, 0 3845 15335 1023 TAD GDRETP /GET RETRIEVAL POINTER 3846 15336 7041 CIA 3847 15337 1033 TAD RETTBL /IS HE TRYING TO REDUCE A UFD? 3848 15340 7640 SZA CLA 3849 15341 5734 JMP I REDUF0 /NO; LET HIM/HER REDUCE NORMAL FILES 3850 15342 1521 TAD I REL6 /GET THE ACCOUNT NUMBER OF THE UFD IN QUESTION 3851 15343 4452 JMS I UTS01 /LOOK IT UP IN THE UFD TABLE 3852 15344 5350 JMP REDUF1 /NOT THERE - GOOD 3853 15345 7200 CLA 3854 15346 1104 TAD C4400 /TELL HIM "FILE IN USE" 3855 15347 5240 JMP EXTQU1 3856 15350 1521 REDUF1, TAD I REL6 /GET THE ACCOUNT NUMBER OF THE UFD TO BE DELETED 3857 15351 4451 JMS I UFO01 /LOAD ITS RETRIEVAL WINDOW INTO RTABLE 3858 15352 5237 JMP EXTQU5 /COULDN'T; PAS HIS/HER OWN AC BACK AS AN ERROR INDICATION 3859 15353 4456 JMS I BLDP1 /MAKE A RETRIEVAL POINTER 3860 15354 3023 DCA GDRETP /SAVE IT FOR THE SEARCH 3861 15355 2107 ISZ EXQ1 /POSITION UFDTBL POINTER FOR THIS ACCOUNT 3862 15356 2107 ISZ EXQ1 /TO POINT TO THE SEGMENT ACCUMULATOR 3863 15357 4203 JMS LOQUO /SEE IF THIS UFD STILL CONTAINS FILES 3864 15360 7346 CLL STA RTL /AC=-3 3865 15361 1107 TAD EXQ1 /POSITION WE'VE BEEN ASSIGNED ON UFDTBL 3866 15362 4447 JMS I TF01 /FREE THE POSITION 3867 15363 1507 TAD I EXQ1 /DID HE OWN ANY SEGMENTS? 3868 15364 7640 SZA CLA 3869 15365 5771 JMP I VIOLAT /STILL SOME FILES IN THERE! 3870 15366 7240 STA 3871 15367 3124 DCA FIOSTK+2 /FORCE HIM/HER TO COMPLETELY DELETE THIS UFD 3872 15370 5734 JMP I REDUF0 3873 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 90 3874 3875 15371 0734 VIOLAT, PRT1+1 3876 15372 3567 ENS33, ENS3 3877 15373 7251 SATSEG, -SATSIZ+1 3878 15374 4376 EXFILE, EXCEED+2 3879 15375 5140 EXTELL, EXTEL0 3880 15376 0240 P0240, 240 3881 15377 6267 GRACE, UTABLE+2 3882 No detected errors