/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 /TS8 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 0030 VERNUM=30 538 /PAGE 0 539 FIELD 3 /LOAD THIS INTO TRACK 3 ON DISK 540 541 0001 *1 542 30001 5402 JMP I .+1 543 544 30002 0200 C0200, 200 545 30003 0000 WS0, 0 /WORKING STORAGE FOR MAIN FLOW 546 30004 0000 WS1, 0 547 30005 0000 JOBSWA, 0 548 549 550 0010 *10 551 30010 0000 ACX10, 0 /FOR INTERRUPT SERVICE 552 30011 0331 ACX11, RINGIN-1 /INPUT RING BUFFER POINTER (LEVEL 1) 553 30012 0000 DSPAR, 0 /DISK HANDLER 554 30013 7007 L2Q, L2QTB-1 /LEVEL 2 QUEUE 555 30014 7007 L2QE, L2QTB-1 /LEVEL 2 EMPTY POINTER 556 30015 0000 AXS1, 0 /MISCELLANEOUS LEVEL 2 AUTO-INDEX 557 30016 0000 AXS2, 0 / " 558 30017 3244 DSKPTR, DSUTBL+6 /DISK REQUEST QUEUE POINTER 559 560 561 0020 SIDATA=20 /SYSTEM INTERPRETER DATA 562 0020 *SIDATA 563 564 30020 2740 COMPTR, DEVTBL /POINTER TO LAST DEVTBL ENTRY SCANNED 565 30021 0000 SIBUF, 0 /BUFFER STATE 566 30022 0000 SICNT, 0 567 30023 0000 COMDSP, 0 /FIP RETURN DISPATCH 568 30024 0000 SIFLG, 0 /COMMAND FLAGS 569 30025 0000 SICHAR, 0 /SAVE LAST CHAR FROM COMMAND SCAN 570 30026 0000 SIREG, 0 /USER AC, LINK, PC 571 30027 0000 0 572 30030 0000 0 573 30031 0000 TTCHAR, 0 /TTY CHARACTER 574 575 0032 CONSTANTS=SIDATA+12 576 0032 *CONSTANTS 577 30032 0002 C0002, 2 578 30033 0003 C0003, 3 579 30034 0004 C0004, 4 580 30035 0007 C0007, 7 581 30036 0037 C0037, 37 582 30037 0100 C0100, 100 583 30040 1000 C1000, 1000 584 30041 7770 C7770, 7770 585 586 0043 JOBCON=CONSTANTS+11 /JOB CONTROL 587 0043 *JOBCON 588 589 30043 0000 JOBTIM, 0 /NUMBER OF TICKS RUN 590 30044 3052 JOBTBA, JOBTBL /JOB TABLE ADDRESS 591 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 14 592 593 0046 FRSTOR=JOBCON+3 594 0046 *FRSTOR 595 596 30046 0000 FREE, 0 /POINTER TO HEAD OF FREE STORAGE 597 30047 0000 FRECNT, 0 /# FREE BLOCKS AVAILABLE 598 599 600 0050 TIMDAT=FRSTOR+2 /CLOCK AND DATE 601 0050 *TIMDAT 602 603 /CLOCK 604 30050 0000 CLK2, 0 605 30051 0000 CLK1, 0 606 607 608 0052 SCHDAT=TIMDAT+2 609 0052 *SCHDAT /SCHEDULING DATA 610 611 30052 0000 COMCNT, 0 /NUMBER OF COMMANDS AWAITING EXECUTION 612 30053 0000 SQREQ, 0 /SWAP REQUEST FLAG 613 30054 0000 FINISH, 0 /+(I)-(O) FIELD OF JOB BEING SWAPPED 614 30055 0000 FIT, 0 /JOB # TO BE SWAPPED IN 615 30056 0000 FORCE, 0 /FIELD TO BE SWAPPED OUT 616 617 0060 DATEND=60 /END OF FIELD 0 PAGE 0 DATA 618 619 620 621 0155 FIPDAT=155 /DATA REFERENCED BY FIP 622 0155 *FIPDAT 623 624 30155 0000 FIPJOB, 0 /JOB NOW (OR SOON TO BE) RUNNING FIP 625 30156 0400 C0400, 400 626 0156 SEGSIZ=C0400 /# WORDS PER SEGMENT 627 0160 *160 628 30160 0000 JOB, 0 /# OF CURRENT JOB 629 30161 0161 JOBDAT, . /ADDRESS OF CURRENT JOB DATA LIST. MUST RESIDE IN DATA FIELD. 630 C7000, 631 30162 7000 CORTBA, CORTBL-1 /CORE ALLOCATION TABLE 632 30163 2740 DEVTBA, DEVTBL /DEVICE TABLE 633 30164 3236 DSUTBA, DSUTBL /USER DISC REQUEST QUEUE 634 30165 7777 DSBUSY, -1 /DISC BUSY COUNT 635 636 /THE DATE IS KEPT AS A 12 BIT NUMBER IN THE FORMAT 637 /DATE=((YEAR-1974)*12+(MONTH-1))*31+DAY-1 638 639 30166 0000 DATE, 0 640 641 642 0400 FISUBL=400 643 644 30167 1602 BLTA, BLT0 /BLOCK TRANSFER 645 4567 BLT=JMS I BLTA 646 30170 1317 CORSRA, CORSRC 647 4570 CORE=JMS I CORSRA /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 15 648 649 30171 1405 GETBA, GETB 650 4571 GETBLK=JMS I GETBA 651 30172 1447 GETDBA, GETDB0 /GET A DATA BLOCK 652 4572 GETDDB=JMS I GETDBA 653 30173 1205 PRINTA, PRINT0 /TYPE OUT A CHARACTER 654 4573 PRINT=JMS I PRINTA 655 30174 0401 GETJT0, GETJTB /GET JOB DATA TABLE ADDRESS 656 4574 GETJTA=JMS I GETJT0 657 30175 0437 GIRSCA, GIRSC /STORE CHARACTER IN BUFFER 658 4575 STORE=JMS I GIRSCA 659 30176 0611 RETBA, RETB /RETURN BLOCK TO FREE STORAGE 660 4576 RETBLK=JMS I RETBA 661 30177 2573 WAITA, WSCHED 662 5577 WAIT=JMP I WAITA /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 16 663 664 /SUBROUTINE DISPATCHES 665 666 0060 SUBDSP=DATEND 667 0060 *SUBDSP 668 669 4460 IOR=JMS I . 670 30060 7360 IOR0 /INCLUSIVE OR 671 5461 UUOEXT=JMP I . 672 30061 7217 UUOEX1 /UUO EXIT 673 30062 1753 FIUSER, DSUSER /QUEUE FILE REQUEST IN DSUBTL 674 4463 ERROR=JMS I . 675 30063 1710 SYSERR /SYSTEM ERROR 676 4464 TTYUSE=JMS I . 677 30064 6061 TTYSRC /FIND USER TTY 678 5465 SCHED=JMP I . 679 30065 2465 SCHEDA, SCHEDI /SCHEDULE NEXT JOB NOW CORE RESIDENT 680 5466 RSCHED=JMP I . 681 30066 2437 RSCHEA, SCHED0 /FIND NEXT JOB TO BE RUN 682 5467 EXIT=JMP I . 683 30067 1513 EXITA, L2EXIT /LEAVE LEVEL 2 684 5470 REDO=JMP I . 685 30070 2570 REDO0 /REPEAT IOT LATER WHEN (HOPEFULLY) IT CAN BE COMPLETED 686 4471 KEY=JMS I . 687 30071 3201 KBD00 /PROCESS KEYBOARD INPUT INTO A USER'S INPUT BUFFER 688 4472 SAVJOB=JMS I . 689 30072 3073 SAVJO0 /SAVE THE STATUS OF THE CURRENT JOB 690 4473 RESJOB=JMS I . 691 30073 6116 RESJO0 /RESTORE THE PREVIOUSLY SAVED STATUS 692 5474 START=JMP I . /START USER JOB 693 30074 0670 SUJ 694 4475 DSGO=JMS I . 695 30075 7672 DSGO0 /START DISK REQUEST 696 4476 GETJTW=JMS I . 697 30076 4570 GETJW0 /GET CONTENT OF JOB STATUS WORD (CURRENT JOB) 698 4477 GETJTI=JMS I . 699 30077 6623 GETJI0 /GET CONTENT OF JOB STATUS WORD (ANY JOB) 700 5500 DISMIS=JMP I . 701 30100 0323 DISMI0 /DISMISS INTERRUPTS 702 4501 RUNABL=JMS I . 703 30101 1637 RUNTST /TEST IF SPECIFIED JOB IS RUNNABLE 704 705 30102 5715 SETFLG, PTSTAR 706 707 0103 L2CON=SUBDSP+23 /LEVEL 2 (EXEC) CONTROL 708 0103 *L2CON 709 710 30103 0100 L2SF, 100 /RELOCATION AND MODE 711 30104 5200 L2SV0, NULJOB /SAVED PC 712 30105 0000 L2SVLK, 0 /SAVED LINK 713 30106 0000 L2SA, 0 /SAVED ACCUMULATOR 714 715 4507 FETCH=JMS I . 716 30107 6457 TOF /RETRIEVE A CHARACTER FROM A LINKED FREE CORE BLOCK 717 30110 7777 CLOCK, -1 /NUMBER OF SYSTEM TICKS PENDING ON LEVEL 2 (MINUS 1) 718 30111 0000 DEAD, 0 /CORTBL-1 OF JOB THAT SHOULD BE PUSHED OUT /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 17 719 720 30112 0000 SCHNEW, 0 /-1 TO ALLOW FULL TIME SLICES 721 30113 0010 C0010, 10 722 IFNZRO DC08A < 723 30114 7777 D6FLAG, -1 /ALLOW 689 ANSWER ONLY ONE TIME IN L2Q 724 30115 6163 D6ANSR, ANSWER > 725 726 727 /ROOM FOR PATCHES!! 728 0132 *CONDBA 729 30132 0000 0 /POINTER TO DEVTBL POSITION CURRENTLY UNDER CONSIDERATION 730 30133 0000 CONDDB, 0 /ADDRESS OF DDB UNDER CONSIDERATION 731 30134 7400 SEGLMK, 7400 /-WRDSEG 732 0134 C7400=SEGLMK 733 30135 0047 BASWIN, -WINBAS-1 734 0161 CJOBDA= JOBDAT 735 30136 0006 C0006, 6 736 30137 0070 C0070, 70 737 SEGSM1, /WRDSEG-1 738 30140 0377 C0377, 377 739 30141 0005 C0005, 5 740 30142 0600 C0600, 600 741 30143 3777 C3777, 3777 742 30144 6203 C6203, 6203 743 QUANTM, 744 30145 7776 C7776, 7776 745 30146 0177 C0177, 177 746 30147 0000 CURJOB, 0 /NUMBER OF JOB INTERRUPTED BY FILE TRANSFER 747 0150 *150 748 4150 UDF=JMS . /SELECT FIELD OF CURRENT JOB 749 30150 0000 WS2, 0 750 30151 0000 UUDF, 0 /DATA FIELD SELECT FOR FIELD OF CURRENT JOB 751 30152 5550 JMP I .-2 752 30153 0000 INTRC, 0 /TRACK # TO BE SWAPPED IN (DF32 0X00) (RF08 000X) 753 30154 0000 OUTTRC, 0 /TRACK # TO BE SWAPPED OUT 754 0042 *42 755 30042 7002 FANCOR, CORTBL+1 /FIELD OF PHANTOM I.E. FIELD 2 756 0057 *57 757 30057 0000 BONUS, 0 /JOB # JUST BROKEN OUT OF I/O WAIT 758 759 0157 *157 760 30157 7600 SWPIOA, SWPIO 761 0045 *45 762 30045 3005 SWPREA, SWPRET 763 764 /FIELD 0 PAGE DIRECTORY 765 4000 IOTS=4000 766 5400 DISC=IOTS+1400 /DISC CONTROL /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 18 767 768 0200 *200 769 770 /PRIORITY LEVEL 0 (HIGHEST PRIORITY) 771 /KEEPS TRACK OF REAL TIME 772 /ALWAYS ENTERED BY CLOCK FLAG 773 /DISMISSES TO LEVEL 1 IF INTERRUPT WAS NOT FROM LEVEL 1 774 /OTHERWISE, DISMISSES TO INTERRUPTED LOCATION. 775 776 INT, 777 IFZERO CPU-2 < 778 SPL /POWER FAILURE? 779 JMP INTX0 /NO 780 JMP I .+1 /YES, HURRY UP AND SERVICE IT 781 POWINT 782 INTX0, > 783 IFZERO CPU-4 < 784 SPL /POWER LOW 785 SKP /NO 786 JMP .-2 /WAIT FOR POWER 787 CAL > /CLEAR POWER LOW CONDITION 788 30200 6254 SINT /USER IOT? (HAS TO BE CHECKED FIRST!!!) 789 IFZERO DC08A 790 30201 7410 IFNZRO DC08A /DC08? 791 30202 5623 JMP I UUOA /YES, GO SAVE LEVEL 2 STUFF 792 IFNZRO DC08A < 793 30203 6421 T1SKP /CLOCK? 794 30204 5224 JMP INT0 /NO, KEEP LOOKING 795 30205 2301 ISZ CLKCNT /YES, IS A SYSTEM TICK UP YET? 796 30206 5620 JMP I T8DISA /NO, RUN DC08 INTERRUPT SERVICE 797 30207 3300 DCA CLKIT /SAVE AC AT INTERRUPT 798 30210 1277 TAD L2TIMA /SCHEDULE L2TIME ON L2QUE 799 30211 2110 ISZ CLOCK /BUMP NUMBER OF TICKS TO COUNT AT LEVEL 2 800 30212 7610 CLA SKP /ALREADY SCHEDULED 801 30213 3413 DCA I L2Q 802 30214 1322 TAD CLKINI /RESET TIMER FOR NEXT TICK 803 30215 3301 DCA CLKCNT 804 30216 1300 TAD CLKIT /GET AC AT INTERRUPT 805 30217 5620 JMP I T8DISA /RUN DC08 SERVICE 806 30220 3627 T8DISA, T8DIS> /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 19 807 808 /INTERRUPTS OTHER THAN 680 (LEVEL 1) 809 /DISMISSES TO LEVEL 2 IF NOT FROM LEVEL 1 OR 2. 810 811 30221 0000 INTAC, 0 /AC AT LEVEL 1 812 30222 0000 INTLK, 0 /LINK AT LEVEL 1 813 30223 2171 UUOA, UUO0 814 815 816 817 30224 3221 INT0, DCA INTAC /SAVE AC AND LINK 818 30225 7010 RAR 819 30226 3222 DCA INTLK 820 821 IFZERO DC08A < 822 IFNZRO CPU-4 /SKIP AND CLEAR FLAG IF FLAG 823 IFZERO CPU-4 /SKIP IF CLOCK FLAG 824 JMP DTINT 825 IFZERO CPU-4 /CLEAR CLOCK FLAG 826 IFZERO CPU-1 < 827 CLA CMA /KW08 828 CCF CLB /CLEAR FLAG AND LOAD BUFFER 829 CECI > /ENABLE 830 831 ISZ CLKCNT /IT WAS CLOCK - WAS IT A SYSTEM TICK 832 JMP DISMI1 /NO - NOTHING TO DO THEN 833 TAD CLKINI /YES - SET FOR NEXT SYSTEM TICK 834 DCA CLKCNT 835 ISZ CLOCK 836 JMP DISMI1 837 TAD L2TIMA /SCHEDULE A SYSTEM TICK ON LEVEL 2 838 JMP DISMI0 > 839 840 841 842 30227 4240 DTINT, JMS DTCHK 843 30230 5500 DISMIS 844 IFNZRO D689 < 845 SRF 846 JMP D6CF 847 DFCRF /CLEAR THE RING FLAG 848 ISZ D6FLAG /HAVE WE GOTTEN MORE THAN ONE FLAG? 849 DISMIS /YES! DON'T OVERFLOW L2Q 850 TAD D6ANSR 851 DISMIS /SCHEDULE PHONE ANSWERING ON L2Q 852 D6CF, SCF 853 JMP RFINT 854 CCF /A CARRIER HAS CHANGED 855 TAD DFM4 856 DCA I TIM68A /TAKE A LOOK AT IT IN FOUR SECONDS 857 DISMIS 858 DFM4, -4 859 TIM68A, TIM689 > /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 20 860 861 RFINT, 862 IFZERO RF08-40 867 30231 6623 IFZERO RF08 /RF08 ERROR? 870 30234 2236 ISZ DSWAIT /NO ERROR - TRANSFER OK 871 872 30235 5636 JMP I DSWAIT 873 30236 0000 DSWAIT, 0 /SET BY DISK SERVICE 874 INT2, 875 IFNZRO CDR /CONTINUE IN THE INTERRUPT CHAIN 876 30237 7410 IFZERO CDR 877 30240 0000 DTCHK, 0 878 IFNZRO CDR /CARD READER? 879 30241 5247 IFZERO CDR 880 30242 5247 JMP .+5 881 30243 6212 CIF DATFLD-1 882 30244 6201 CDF 883 30245 5646 JMP I .+1 884 30246 1721 CDL11 885 IFNZRO RK05 < DSKP > /RK05? 886 30247 5254 IFZERO RK05 < JMP .+5 > 887 30250 5254 JMP .+4 888 30251 6213 CIF DATFLD 889 30252 5653 JMP I .+1 890 30253 2000 RKL11 891 IFNZRO TC01 /DECTAPE? 892 30254 5265 IFZERO TC01 893 30255 5265 JMP .+10 894 30256 6761 DTRA 895 30257 0034 AND C0004 896 30260 7650 SNA CLA 897 30261 5265 JMP .+4 898 30262 6213 CIF DATFLD 899 30263 5664 JMP I .+1 900 30264 0601 DTL11 901 30265 2240 ISZ DTCHK 902 30266 5640 F1RTN, JMP I DTCHK /THESE 3 DEVICES RETURN HERE FROM FIELD 1 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 21 903 904 30267 1300 INT7, TAD CLKIT 905 30270 3413 DCA I L2Q /QUEUE REQUEST 906 30271 1222 DISMI1, TAD INTLK /RESTORE LINK AND AC 907 30272 7104 CLL RAL 908 30273 1221 TAD INTAC 909 30274 6244 DISMI2, RMF /RESTORE IF, DF, & MODE 910 30275 6001 ION 911 30276 5400 JMP I 0 /BACK TO INTERRUPTED PROGRAM 912 913 30277 2400 L2TIMA, L2TIME 914 REST0, 915 30300 0000 CLKIT, 0 /TEMPORARY FOR AC 916 30301 7775 CLKCNT, -3 /WILL INITIALIZE ITSELF TO THE CORRECT VALUE 917 918 0322 *322 919 30322 0000 CLKINI, 0 /SET BY INIT TO CAUSE 1 SYSTEM TICK TO = 100 M.S. 920 /DISMIS ROUTINE 921 /ENTERED FROM INTERRUPT HANDLER TO ENTER LEVEL 2 FROM LEVEL 1 922 /AC = ADDRESS OF LEVEL 2 SERVICE ROUTINE 923 / OR 0 IF NO LEVEL 2 SERVICE REQUIRED 924 925 DISMI0, 926 30323 6201 C6201, CDF 927 30324 7450 SNA /DISMISS INTERRUPTS? 928 30325 5271 JMP DISMI1 /NO - BACK TO WHATEVER WAS GOING ON BEFORE 929 30326 3300 DCA CLKIT /SAVE DISPATCH 930 30327 6234 RIB /MODE BIT = 100 931 30330 0037 AND C0100 932 30331 7650 SNA CLA /FROM USER MODE? 933 30332 5267 JMP INT7 /NO - QUEUE REQUEST UNTIL LATER 934 30333 1221 TAD INTAC /MOVE THE AC TO LEVEL 2 935 30334 3106 DCA L2SA 936 30335 1222 TAD INTLK /MOVE LINK TO LEVEL 2 937 30336 3105 DCA L2SVLK 938 30337 1000 TAD 0 /MOVE PC TO LEVEL 2 939 30340 3104 DCA L2SV0 940 30341 6234 RIB 941 30342 3103 DCA L2SF /FIELDS AND MODE TO LEVEL 2 942 30343 6001 ION /DISMISS TO EXEC MODE, FIELD 0, LEVEL 2 943 30344 5700 JMP I CLKIT 944 945 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 22 946 947 /RESTORE INTERRUPTED STATE 948 949 30345 3300 RESTOR, DCA REST0 /POINTER TO SAVED INFO 950 30346 1700 TAD I REST0 /SAVED FIELDS AND STATE 951 30347 0137 AND C0070 /GET INSTRUCTION FIELD 952 30350 1144 TAD C6203 953 30351 3375 DCA RCIF /CIF FOR PROPER FIELD 954 30352 1700 TAD I REST0 955 30353 7106 CLL RTL 956 30354 7004 RAL 957 30355 0137 AND C0070 /CDF FOR RETURN 958 30356 1323 TAD C6201 /NOT NECESSARILLY EQUAL TO INSTRUCTION FIELD 959 30357 3376 DCA RCDF 960 30360 1700 TAD I REST0 961 30361 0037 AND C0100 /USER PROGRAM, FIP OR SI? 962 30362 7640 SZA CLA 963 30363 6274 SUF /USER MODE; SET USER FLAG 964 30364 2300 ISZ REST0 965 30365 1700 TAD I REST0 /PC 966 30366 3000 DCA 0 967 30367 2300 ISZ REST0 968 30370 1700 TAD I REST0 /LINK 969 30371 7104 CLL RAL 970 30372 2300 ISZ REST0 971 30373 7200 CLA 972 30374 1700 TAD I REST0 /AC 973 30375 0000 RCIF, 0 974 30376 0000 RCDF, 0 975 30377 6001 ION 976 30400 5400 JMP I 0 /BACK TO INTERRUPTED PROGRAM /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 23 977 978 /RETURN ADDRESS OF LINKED TABLE ENTRY 979 /CALL TAD TABLE ENTRY ADDRESS 980 / GETJTA 981 / ENTRY NAME (NUMBER) 982 / RETURN 983 984 30401 0000 GETJTB, 0 985 30402 3234 DCA GETJT1 /SAVE JOBTABLE ADDRESS 986 30403 1601 TAD I GETJTB /ENTRY # 987 30404 3235 DCA GETJT2 988 30405 6214 RDF /FIELD CALLED FROM 989 30406 1144 TAD C6203 990 30407 3231 DCA GETJT3 /SO WE CAN GET BACK 991 30410 6211 DATFLD /CHANGE TO DATA FIELD 992 30411 3633 DCA I GETJTZ /CLEAR FLD 1 LOC. 0 993 30412 1634 GETJ1, TAD I GETJT1 /GET JOBTBL ENTRY 994 30413 7100 CLL /TO LET CALLER KNOW IT DOESN'T EXIST 995 30414 7450 SNA /LINK 0? 996 30415 5230 JMP GETJ3 /YES - RETURN 0 997 30416 3234 DCA GETJT1 /NO, JOB DATA ADDRESS 998 30417 1236 TAD GETJM7 999 30420 1235 TAD GETJT2 /ARE WE IN PROPER BLOCK? 1000 30421 7510 SPA /ENTRY<7? 1001 30422 5225 JMP .+3 /YES 1002 30423 3235 DCA GETJT2 /NO, LINK TO NEXT 1003 30424 5212 JMP GETJ1 /AND TRY AGAIN 1004 30425 7321 STL CLA IAC /SET LINK TO LET CALLER KNOW WE WERE SUCCESSFUL 1005 30426 1235 TAD GETJT2 /INDEX INTO BLOCK 1006 30427 1234 TAD GETJT1 /START OF BLOCK 1007 30430 2201 GETJ3, ISZ GETJTB /SKIP CALLING ARGUMENT 1008 GIRSB, 1009 30431 0000 GETJT3, 0 /BACK TO CALLING FIELD 1010 30432 5601 JMP I GETJTB 1011 30433 0000 GETJTZ, 0 /POINTER TO LOC. 0 OF FIELD 1 (NOT FOR TEMPORARY STORAGE) 1012 1013 GIRSCT, /POINTER TO ITEM COUNT 1014 30434 0000 GETJT1, 0 1015 GIRST, 1016 30435 0000 GETJT2, 0 1017 30436 7771 GETJM7, -7 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 24 1018 1019 /STORE CHARACTER 1020 /CALL WITH ADDRESS OF DDB IN AC, CHARACTER IN TTCHAR 1021 / STORE 1022 / ADDRESS OF ROUTINE TO CHECK BUFFER SIZE 1023 / WON'T FIT 1024 / OK 1025 0004 EMPTY=WS1 1026 0034 DBINPA=C0004 1027 1028 30437 0000 GIRSC, 0 1029 30440 1034 TAD DBINPA 1030 30441 3231 DCA GIRSB /POINTS TO ADDRESS OF BUFFER 1031 30442 1631 TAD I GIRSB 1032 30443 7450 SNA /IS BUFFER SET UP? (I.E. IS FILL POINTER NON ZERO?) 1033 30444 5336 JMP GIRSC8 /NO - GO GET A BUFFER 1034 30445 3234 DCA GIRSCT /POINTER TO FILL COUNT 1035 30446 2634 ISZ I GIRSCT /ANY ROOM LEFT? 1036 30447 5277 JMP GIRSC1 /YES 1037 30450 6201 CDF 1038 30451 1637 TAD I GIRSC /GET ADDRESS OF SIZE SUBROUTINE 1039 30452 6211 DATFLD 1040 30453 3235 DCA GIRST 1041 30454 1231 TAD GIRSB 1042 30455 7001 IAC /POINT TO CHARACTER COUNT 1043 30456 4635 JMS I GIRST /GO CHECK BUFFER SIZE 1044 30457 5355 JMP GIRSC0 /BUFFER ALREADY FULL - NO ROOM FOR THIS ENTRY 1045 30460 7346 GIRS11, CLL CLA CMA RTL /IS THERE ENOUGH (I.E. 3 BLOCKS) FREE CORE LEFT? 1046 30461 1047 TAD FRECNT 1047 30462 7750 SPA SNA CLA 1048 30463 5355 JMP GIRSC0 /NO - DON'T GIVE HIM ANOTHER BUFFER NOW 1049 30464 1234 TAD GIRSCT /OK - GET A BUFFER 1050 30465 6201 CDF 1051 30466 4571 GETBLK /NO, LINK NEW BUFFER 1052 30467 5355 JMP GIRSC0 /NONE AVAILABLE 1053 30470 6211 DATFLD 1054 30471 1634 TAD I GIRSCT /POINTER TO HEAD OF NEW BUFFER 1055 30472 3631 DCA I GIRSB /BUFFERS NOW CHAINED TOGETHER 1056 30473 1631 GIRSC7, TAD I GIRSB 1057 30474 3234 DCA GIRSCT /POINT TO NEW FILL COUNT 1058 30475 1361 TAD GIRSIZ /INITIALIZE CHAR COUNT TO -12 1059 30476 3634 DCA I GIRSCT /AND SAVE IN NEW BLOCK 1060 30477 1634 GIRSC1, TAD I GIRSCT /ARE WE DOING LAST THREE CHARACTERS IN BLOCK? 1061 30500 1033 TAD C0003 1062 30501 7500 SMA 1063 30502 7124 STL RAL /YES SO MULT. BY 2 THEN ADD 1 1064 30503 7510 SPA /PACK? 1065 30504 7161 STL CIA /NO - GET ADDRESS WITHIN BUFFER 1066 30505 1631 TAD I GIRSB /START OF BUFFER 1067 30506 3234 DCA GIRSCT /ADDRESS TO STORE CHARACTER 1068 30507 1031 TAD TTCHAR 1069 30510 7420 SNL /PACK? 1070 30511 5321 JMP GIRSC4 /YES 1071 30512 0140 AND C0377 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 25 1072 1073 30513 3634 GIRSC5, DCA I GIRSCT /STORE CHARACTER 1074 30514 2231 ISZ GIRSB /POINT TO CHARACTER COUNT 1075 30515 2631 ISZ I GIRSB /COUNT THIS ENTRY 1076 30516 2237 ISZ GIRSC /INDICATE SUCCESS 1077 30517 2237 GIRSC3, ISZ GIRSC /TO SKIP PAST ARG. 1078 30520 5637 JMP I GIRSC 1079 30521 7006 GIRSC4, RTL /SHIFT BITS TO LEFT 1080 30522 7006 RTL 1081 30523 0134 AND C7400 1082 30524 1634 TAD I GIRSCT /AND SAVE IN CURRENT LOCATION IN BUFFER 1083 30525 3634 DCA I GIRSCT 1084 30526 2234 ISZ GIRSCT /NEXT LOCATION IN BUFFER 1085 30527 1031 TAD TTCHAR /GET LOW 4 BITS FROM CHARACTER 1086 30530 7012 RTR 1087 30531 7012 RTR 1088 30532 7010 RAR 1089 30533 0134 AND C7400 /AND COMBINE WITH PREVIOUS CHARACTER 1090 30534 1634 TAD I GIRSCT /SAVE THE WHOLE MESS 1091 30535 5313 JMP GIRSC5 /AND AWAY 1092 1093 30536 6201 GIRSC8, CDF /ATTACH A BUFFER TO FILL POINTER 1094 30537 1231 TAD GIRSB /LINK ADDRESS 1095 30540 4571 GETBLK 1096 30541 5317 JMP GIRSC3 /CAN'T GET ONE - TOO BAD 1097 30542 6211 DATFLD /OK - SET UP POINTERS 1098 30543 7126 STL RTL / 2 PLUS 1099 30544 1231 TAD GIRSB /ADDRESS OF FILL POINTER 1100 30545 3004 DCA EMPTY / = ADDRESS OF EMPTY COUNT 1101 30546 7240 STA 1102 30547 1361 TAD GIRSIZ /-13 TO THE EMPTY COUNT 1103 30550 3404 DCA I EMPTY 1104 30551 2004 ISZ EMPTY /NOW INITIALIZE THE EMPTY POINTER 1105 30552 1631 TAD I GIRSB /SET EMPTY POINTER EQUAL TO FILL POINTER 1106 30553 3404 DCA I EMPTY /SINCE IT'S THE ONLY BUFFER 1107 30554 5273 JMP GIRSC7 1108 30555 6211 GIRSC0, DATFLD /COULDN'T SQUEEZE CHARACTER IN 1109 30556 7240 STA /BUT WE ALREADY BUMPED FILL COUNT 1110 30557 3634 DCA I GIRSCT /INDICATE CURRENT BLOCK IS STILL FULL 1111 30560 5317 JMP GIRSC3 /AND EXIT WITHOUT SKIPPING 1112 1113 30561 7766 GIRSIZ, -12 /10 (DECIMAL) CHARACTERS/BLOCK 1114 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 26 1115 1116 30562 4462 OVRLA1, JMS I FIUSER 1117 30563 5577 WAIT 1118 1119 30564 0000 REMJOB, 0 1120 30565 1112 TAD SCHNEW /GET NEW JOB MASK 1121 30566 0160 AND JOB /AND THE CURRENT JOB 1122 30567 3147 DCA CURJOB /IF THERE'S A JOB; REMEMBER HIM/HER 1123 30570 4472 SAVJOB /SAVE HIS/HER STATE 1124 30571 7240 STA 1125 30572 3112 DCA SCHNEW /SET MASK FOR FULL SLICE 1126 30573 5764 JMP I REMJOB 1127 1128 30574 1026 READFI, TAD SIREG /FIND RESIDENT FIELD FOR THIS JOB 1129 30575 3003 FILCON, DCA WS0 1130 30576 4364 JMS REMJOB /BUMP OFF THE PRESENT USER - BUT MAYBE REMEMBER WHO HE IS 1131 30577 1003 TAD WS0 1132 30600 4570 CORE 1133 30601 0037 CJOB /ANY FIELD WITH THIS JOB IN IT IS OK 1134 30602 7402 HLT /IF IT'S NOT THERE IT'S DOOMS DAY FOR ALL 1135 30603 3103 DCA L2SF /RESTORE FOR THIS JOB 1136 30604 1003 TAD WS0 1137 30605 4473 RUNFI, RESJOB /RESTORE LEVEL TWO FOR THIS JOB 1138 30606 4476 GETJTW /GET ADDRESS OF FILE PARAMETER BLOCK 1139 30607 0007 JOBLNK 1140 30610 5645 JMP I SIFILA /AND OFF TO THE FILE HANDLER /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 27 1141 1142 /RETURN BLOCK TO FREE LIST 1143 /CALL TAD BLOCK ADDRESS 1144 / RETBLK 1145 / RETURN WITH LINK IN AC 1146 1147 30611 0000 RETB, 0 1148 30612 3347 DCA RETB1 /SAVE BLOCK ADDRESS 1149 30613 6214 RDF 1150 30614 1144 TAD C6203 1151 30615 3242 DCA RETF /FOR RETURNING TO CALLER 1152 30616 1347 TAD RETB1 1153 30617 7100 CLL 1154 30620 1244 TAD RETEND /SEE IF IT'S FIP'S BLOCK OR A FILL COUNT FOR A LINKED BUFFER 1155 30621 7630 SZL CLA 1156 30622 5242 JMP RETF /IT IS - DON'T RELEASE IT 1157 30623 1347 TAD RETB1 1158 30624 7450 SNA 1159 30625 7402 HLT /SHOULD NEVER RETURN 0000 1160 30626 0035 AND C0007 1161 30627 7440 SZA 1162 30630 7402 HLT /SHOULD ALWAYS BE XXX0 1163 30631 6211 DATFLD 1164 30632 1747 TAD I RETB1 /NOW GET THE LINK, IF ANY 1165 30633 3346 DCA RETBL /SAVE IT 1166 30634 1046 TAD FREE /GET OLD START OF FREE LIST 1167 30635 3747 DCA I RETB1 /PUT IT IN LINK 1168 30636 1347 TAD RETB1 /PUT ADDRESS OF THIS BLOCK 1169 30637 3046 DCA FREE /AS START OF FREE LIST 1170 30640 2047 ISZ FRECNT /INCREMENT FREE 1171 30641 1346 TAD RETBL 1172 30642 0000 RETF, 0 /RETURN WITH LINK 1173 30643 5611 JMP I RETB 1174 1175 30644 0060 RETEND, -FIPBLK 1176 1177 1178 30645 4521 SIFILA, SIFILE /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 28 1179 1180 30646 0040 SJCOPY, JSIOTC 1181 1182 0035 SUJERR= C0007 1183 /RESTART USER JOB AT RESTART ADDRESS 1184 1185 30647 7041 GIR90, CIA /NEGATE THE JOB NUMBER 1186 30650 1160 TAD JOB /IS THE JOB CURRENTLY RUNNING? 1187 30651 7640 SZA CLA 1188 30652 5260 JMP GIR91 /NO 1189 30653 1403 TAD I WS0 1190 30654 3104 DCA L2SV0 /SET PC=RESTART ADDRESS 1191 30655 3105 DCA L2SVLK /SET LINK=0 1192 30656 3106 DCA L2SA /SET AC=0 1193 30657 5666 JMP I GIR0A /LEAVE 1194 30660 1403 GIR91, TAD I WS0 1195 30661 3405 DCA I JOBSWA /SET PC=RESTART ADD 1196 30662 2005 ISZ JOBSWA 1197 30663 7240 STA 1198 30664 3405 DCA I JOBSWA /SET LINK=-1 SO WE'LL REMEMBER TO CLEAR HIS'HER LINK & AC LATER 1199 30665 5666 JMP I GIR0A 1200 30666 3246 GIR0A, KBD01 1201 30667 6777 CNOTR, -NOTRUN-1 1202 1203 /START USER JOB 1204 1205 30670 1103 SUJ, TAD L2SF /CLEAR NOTRUN FLAG SO JOB CAN BE SWAPPED 1206 30671 0035 AND C0007 /GET CORTBL INDEX 1207 30672 1162 TAD CORTBA 1208 30673 3345 DCA SUJSRC /POINTS TO ENTRY IN CORTBL FOR THIS JOB 1209 30674 1745 TAD I SUJSRC /GET CORTBL ENTRY 1210 30675 0267 AND CNOTR /CLEAR NOT RUN BIT 1211 30676 3745 DCA I SUJSRC /SAVE ENTRY 1212 30677 1160 TAD JOB /IS IT A PHANTOM? 1213 30700 0142 AND C0600 1214 30701 7640 SUJ2, SZA CLA 1215 30702 5467 EXIT /YES - WE'RE ALL SET 1216 30703 4476 SUJ5, GETJTW /NO, IOT RESULTS TO USER? 1217 30704 0000 JOBSTS 1218 30705 0246 AND SJCOPY /IOTC BIT IN STR0 1219 30706 6211 DATFLD 1220 30707 7450 SNA 1221 30710 5357 JMP SUJ4 /NO - WAS THERE A SYSTEM ERROR? 1222 30711 7040 CMA /CLEAR THE BIT 1223 30712 0405 AND I JOBSWA /JSIOTC:=0 1224 30713 3405 DCA I JOBSWA /SAVE NEW STR0 1225 30714 6201 CDF /GET # ARGUMENTS TO RETURN 1226 30715 4476 GETJTW 1227 30716 0007 JOBLNK 1228 30717 3345 DCA SUJSRC /POINTS TO WORD1 OF PARAMETER BLOCK 1229 30720 6211 DATFLD 1230 30721 1745 TAD I SUJSRC /IOT IN QUESTION 1231 30722 6201 CDF 1232 30723 7010 RAR /SAVE "WHO FINF" INDICATOR IN LINK 1233 30724 0034 AND C0004 1234 30725 7650 SNA CLA /WAS BIT 8 ON? 1235 30726 5355 JMP SUJ3 /NO - MUST HAVE BEEN AN RFILE OR WFILE WINDOW TURN /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 29 1236 30727 7064 CML CMA RAL 1237 30730 7106 CLL RTL /CA=-3 FOR "WHO"; AC=-7 FOR "FINF" 1238 30731 3350 DCA SUJCNT /SAVE COUNT 1239 30732 1345 TAD SUJSRC /RETURN PARAMETER BLOCK 1240 30733 4576 RETBLK 1241 30734 7200 CLA 1242 30735 2345 ISZ SUJSRC /POINTS TO WORD 2 OF BLOCK 1243 30736 1151 TAD UUDF /TRANSFER RESULTS TO USER'S FIELD 1244 30737 3346 DCA SUJDFS /...SET FIELD IN BLT CALL 1245 30740 1106 TAD L2SA /POINTS TO USER'S PARAMETERS 1246 30741 3347 DCA SUJDES /SAVE FOR BLT 1247 30742 3106 DCA L2SA /CLEAR HIS/HER AC 1248 30743 4567 BLT /MOVE RESULTS TO USER 1249 30744 6211 DATFLD /FROM FIELD 1 1250 30745 0000 SUJSRC, 0 /SOURCE ADDRESS 1251 RETBL, 1252 30746 0000 SUJDFS, 0 /TO USER FIELD 1253 RETB1, 1254 30747 0000 SUJDES, 0 /AT THIS ADDRESS 1255 30750 0000 SUJCNT, 0 /-WORD COUNT 1256 30751 1160 TAD JOB 1257 30752 4501 RUNABL /IS HE STILL RUNNABLE? 1258 30753 5577 WAIT /NO - JUST NEEDED TO PASS THE INFO TO HIM/HER 1259 30754 5303 JMP SUJ5 1260 1261 30755 1345 SUJ3, TAD SUJSRC /UFILE RETURN 1262 30756 5645 JMP I SIFILA 1263 1264 30757 2005 SUJ4, ISZ JOBSWA /POINT AT STR1 1265 30760 1405 TAD I JOBSWA 1266 30761 7132 STL RTR /PLACE SYSTEM ERROR PENDING BIT IN LINK 1267 30762 7420 SNL /IS THERE AN ERROR? 1268 30763 5301 JMP SUJ2 /NO; GO CLEAR AC AND EXIT 1269 /ROUTINE TO START USER JOB AT ERROR ADDRESS 1270 /DOES A JMS TO ERROR ADDRESS 1271 /USER PC AT TIME OF ERROR TO ADDRESS; JMP TO ADD+1 1272 30764 7106 CLL RTL /CLEAR THE ERROR PENDING BIT 1273 30765 3405 DCA I JOBSWA /TO AVOID A SECOND JMS TO HIS ERROR ROUTINE 1274 30766 1005 TAD JOBSWA 1275 30767 1141 TAD C0005 1276 30770 3005 DCA JOBSWA /POINTS TO ERROR RESTART ADD 1277 30771 1405 TAD I JOBSWA /ERROR ADDRESS 1278 30772 3003 DCA WS0 1279 30773 1104 TAD L2SV0 /OLD PC 1280 30774 4150 UDF /GET USER'S FIELD 1281 30775 3403 DCA I WS0 /SAVE OLD PC 1282 30776 7001 IAC 1283 30777 1003 TAD WS0 /ERROR ADDRESS + 1 1284 31000 3104 DCA L2SV0 /NEW PC 1285 31001 5467 EXIT 1286 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 30 1287 1288 /PAPER TAPE READER SERVICE FOR TSS/8 1289 1290 31002 4741 UPTR, JMS I PTRCHK /DOES HE OWN DEVICE? 1291 31003 3030 PTRDEV, DEVTBE /POINTS TO READER ENTRY IN DEVTBL 1292 31004 1346 TAD URCBI /CHECK FOR "RCB" 1293 31005 1003 TAD UUOCAL 1294 31006 7650 SNA CLA 1295 31007 5240 JMP URCB /IT IS! 1296 31010 4742 JMS I PTRIOT /ANALYZE IOT 1297 31011 5232 JMP URRS /READ A STRING 1298 31012 0010 PTRFL, JSPTR /READER FLAG 1299 31013 5631 JMP I PTRSKP /WE ALWAYS SKIP 1300 31014 7620 SNL CLA /RRB? 1301 31015 5461 UUOEXT /NO - MUST HAVE BEEN RFC - SO WHAT! 1302 31016 3003 DCA WS0 /SET READER'S BREAK MASK TO 0 1303 31017 6211 DATFLD 1304 31020 1603 TAD I PTRDEV /ADDRESS OF DDB 1305 31021 4507 FETCH /FETCH A CHARACTER FROM READER BUFFER 1306 31022 5244 JMP PSTWT0 /NONE AVAILABLE - START READER 1307 31023 3227 DCA PTRCH /SAVE FOR NEXT RRB 1308 31024 6201 CDF 1309 31025 1352 TAD PTRACA /POINTS TO L2SA 1310 31026 4460 IOR /OR CHARACTER INTO L2SA 1311 31027 0000 PTRCH, 0 1312 31030 5461 UUOEXT /EXIT TO USER 1313 31031 7215 PTRSKP, UUOEX2 1314 1315 31032 6211 URRS, DATFLD 1316 31033 1603 TAD I PTRDEV /GET DDB ADDRESS 1317 31034 3133 DCA CONDDB 1318 31035 4743 JMS I PSTRIN /TRANSFER STRING TO USER 1319 31036 5244 JMP PSTWT0 /INSUFFICIENT NUMBER OF CHARACTERS IN BUFFER 1320 31037 5461 UUOEXT 1321 1322 31040 6211 URCB, DATFLD 1323 31041 1603 TAD I PTRDEV /CLEAR THE ENTIRE READER BUFFER 1324 31042 4747 JMS I PTRCLR 1325 31043 5461 UUOEXT /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 31 1326 1327 31044 7240 PSTWT0, STA 1328 31045 3332 L2PTR1, DCA PTRSET /REMEMBER WHY WE ARE HERE 1329 31046 6203 CDF CIF /SELECT F0 AND INHIBIT INTERRUPTS 1330 31047 1744 TAD I PTRTIM /IS THE READER BUSY? 1331 31050 7650 SNA CLA 1332 31051 6014 RFC /START THE READER 1333 31052 7344 CLL STA RAL /AC=-2 1334 31053 3744 DCA I PTRTIM /SET READER TIMER 1335 31054 3745 DCA I RCNTA /NO LIMIT UNTIL IT'S READ AT LEAST ONE BLOCK WORTH 1336 31055 2332 ISZ PTRSET /FROM UUO OR LEVEL 2? 1337 31056 5467 EXIT /LEVEL 2 - FINISHED 1338 31057 7240 STA 1339 31060 1104 TAD L2SV0 /BACK UP HIS PC FOR A REDO 1340 31061 3104 DCA L2SV0 1341 31062 1212 TAD PTRFL 1342 31063 5461 UUOEXT /NOW WAIT FOR THE READER 1343 1344 31064 0000 PTRSIZ, 0 1345 31065 3332 DCA PTRSET /SAVE POINTER TO CHARACTER COUNT 1346 31066 2264 ISZ PTRSIZ /WE ALWAYS SUCCEED 1347 31067 6203 CDF CIF /NO INTERRUPTS WHILE WE CHECK THE READER'S STATUS 1348 31070 1744 TAD I PTRTIM 1349 31071 7700 SMA CLA /IS IT STILL RUNNING? 1350 31072 5310 JMP PTRSI2 /NO - JUST MAKE SURE THE FLAG IS SET 1351 31073 1047 TAD FRECNT /HOW'S THE SUPPLY OF FREE CORE? 1352 31074 1041 TAD C7770 1353 31075 7740 SMA SZA CLA 1354 31076 1350 TAD PTRFUL /MINUS NUMBER ALLOWED 1355 31077 6211 DATFLD 1356 31100 1732 TAD I PTRSET /PLUS CURRENT CHARACTER COUNT 1357 31101 6201 CDF 1358 31102 7500 SMA 1359 31103 7240 STA /SHUT DOWN THE READER AFTER THE NEXT CHARACTER 1360 31104 3745 DCA I RCNTA 1361 31105 1745 TAD I RCNTA 1362 31106 1037 TAD C0100 1363 31107 7700 SMA CLA 1364 31110 4332 PTRSI2, JMS PTRSET /SET THE READER FLAG IN STR1 1365 31111 5664 JMP I PTRSIZ 1366 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 32 1367 1368 31112 4332 L2PTR, JMS PTRSET /WAKE HIM/HER UP - HE'S HUNG 1369 31113 1603 TAD I PTRDEV /DDB? 1370 31114 7450 SNA 1371 31115 5467 EXIT /NO 1372 31116 3016 DCA AXS2 /YES - SAVE IT, WE'LL NEED THE JOB # FROM IT 1373 31117 1016 TAD AXS2 1374 31120 1034 TAD C0004 1375 31121 3003 DCA WS0 1376 31122 1403 TAD I WS0 /IS IT EMPTY? 1377 31123 7640 SZA CLA 1378 31124 5467 EXIT /NO - SO IT ISN'T OFFICIALLY HUNG YET 1379 31125 1416 TAD I AXS2 /JOB OWNING PTR 1380 31126 6201 CDF 1381 31127 4463 ERROR /REPORT THE HUNG READER TO HIM/HER 1382 31130 0006 HUNGDV 1383 31131 5467 EXIT 1384 1385 31132 0000 PTRSET, 0 1386 31133 6211 DATFLD 1387 31134 1203 TAD PTRDEV /READER'S POSITION IN DEVTBL 1388 31135 3132 DCA CONDBA 1389 31136 1212 TAD PTRFL 1390 31137 4502 JMS I SETFLG /SET JSPTR IN STR1 1391 31140 5732 JMP I PTRSET 1392 1393 31141 2125 PTRCHK, DEVCHK 1394 31142 5115 PTRIOT, UKT1 1395 31143 3475 PSTRIN, UKREAD 1396 31144 2415 PTRTIM, TIMPTR 1397 31145 7443 RCNTA, RCNT 1398 31146 1761 URCBI, -6017 1399 31147 6642 PTRCLR, CLRBUF 1400 31150 7540 PTRFUL, -240 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 33 1401 1402 1403 /ROUTINE TO HANDLE EASY DECTAPE STUFF 1404 /LIKE DTSF AND DTRB 1405 /DTSF ALWAYS SKIPS 1406 1407 31151 2104 UDTRBS, ISZ L2SV0 /BUMP HIS PC 1408 31152 0106 PTRACA, L2SA /TRICKY, TRICKY 1409 31153 4476 UDTRB, GETJTW /GET LAST VALUE OF STATUS B 1410 31154 0002 JOBSTB 1411 31155 3106 DCA L2SA /GIVE IT TO USER 1412 31156 5461 UUOEXT 1413 1414 31157 4000 C4000, 4000 1415 31160 3734 MCSCQ, -4044 /COVERS BOTH ^Q AND ^S 1416 1417 31161 0000 CONSQ, 0 1418 31162 2132 ISZ CONDBA /POINT TO OUTPUT SIDE IN DEVTBL 1419 31163 1031 TAD TTCHAR 1420 31164 7112 CLL RTR 1421 31165 1360 TAD MCSCQ /CHECK FOR ^Q AND ^S 1422 31166 7640 SZA CLA 1423 31167 5761 JMP I CONSQ /NEITHER 1424 31170 1532 TAD I CONDBA 1425 31171 7450 SNA 1426 31172 5761 JMP I CONSQ /DOESN'T HAVE AN OUTPUT DDB - SO ^S/^Q MEANS NOTHING 1427 31173 3150 DCA WS2 /ADDRESS OF OUTPUT DDB 1428 31174 1550 TAD I WS2 1429 31175 0143 AND C3777 /CLEAR THE BIT FIRST 1430 31176 7420 SNL /NOW WHICH WAS IT? 1431 31177 1357 TAD C4000 /^S - SET THE BIT TO INHIBIT HIS/HER TTY FROM PRINTING 1432 31200 3550 DCA I WS2 /SAVE UPDATED STATUS 1433 31201 7430 SZL /WHICH WAS IT AGAIN? 1434 31202 4235 JMS TYPE /^Q - START HIM/HER TYPING IF HE HAS ANYTHING TO TYPE 1435 31203 5604 JMP I .+1 /TAKE SUCCESSFUL EXIT THROUGH "KEY" 1436 31204 3265 KBDXIT /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 34 1437 1438 /MULTI-FIELD ROUTINE TO OUTPUT TO A TTY, PTP, OR LPT 1439 /CALL: CONDBA CONTAINS POINTER TO POSITION IN DEVTBL 1440 / TTCHAR CONTAINS CHARACTER TO BE OUTPUT 1441 / PRINT 1442 / NO ROOM IN OUTPUT BUFFER 1443 / OK 1444 1445 31205 0000 PRINT0, 0 1446 31206 6214 RDF 1447 31207 1144 TAD C6203 1448 31210 3225 DCA PRINTX /REMEMBER FROM WHENCE WE CAME 1449 31211 3004 DCA EMPTY /CLEAR EMPTY BUFFER INDICATOR 1450 31212 6211 PRINT1, DATFLD 1451 31213 1532 TAD I CONDBA /GET ADDRESS OF DDB 1452 31214 7450 SNA 1453 31215 5227 JMP PRINT2 1454 31216 4575 STORE /STASH THE CHARACTER IN HIS BUFFER 1455 31217 1255 OUTSIZ /ADDRESS OF SIZE CHECK ROUTINE FOR OUTPUT 1456 31220 5225 JMP PRINTX /WOULDN'T FIT 1457 31221 2205 ISZ PRINT0 /OK - SKIP ON RETURN 1458 31222 1004 TAD EMPTY /WAS THE BUFFER EMPTY? 1459 31223 7640 SZA CLA 1460 31224 4235 JMS TYPE /YES - BETTER START THE HARDWARE 1461 31225 0000 PRINTX, .-. /FIELD SELECT 1462 31226 5605 JMP I PRINT0 /AND BACK 1463 31227 1132 PRINT2, TAD CONDBA /NO BUFFER SETUP YET 1464 31230 6201 CDF 1465 31231 4571 GETBLK /CREATE A PSEUDO DDB 1466 31232 5225 JMP PRINTX /NO BLOCKS AVAILABLE 1467 31233 5212 JMP PRINT1 1468 31234 7566 TTOFLB, TTOFLG 1469 1470 CORSR4, 1471 31235 0000 TYPE, 0 1472 31236 1132 TAD CONDBA /DEVTBL POINTER 1473 31237 1314 TAD OUTOFF /MINUS DIF. 1474 31240 7110 CLL RAR /DIVIDE BY 2 1475 31241 3255 DCA OUTSIZ / = OUTREG POINTER 1476 31242 6202 CIF /NO INTERRUPTS 1477 31243 1655 TAD I OUTSIZ 1478 31244 0310 AND C4001 1479 31245 7640 SZA CLA /CHECK SERVICE AND CHARACTER FLAGS 1480 31246 5635 JMP I TYPE /CHARACTER WILL BE TAKEN BY AN INTERRUPT 1481 31247 7130 STL RAR 1482 31250 1655 TAD I OUTSIZ /SET THE SERVICE FLAG 1483 31251 3655 DCA I OUTSIZ 1484 31252 6201 CDF 1485 31253 3634 DCA I TTOFLB /SCHEDULE LEVEL 2 TO PRINT IT 1486 31254 5635 JMP I TYPE /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 35 1487 1488 CORSR2, 1489 31255 0000 OUTSIZ, 0 1490 31256 3235 DCA TYPE /SAVE POINTER TO CHARACTER COUNT 1491 31257 1635 TAD I TYPE /CURRENT COUNT 1492 31260 7510 SPA /DOES IT INCLUDE A FILLER CHARACTER COUNT 1493 31261 0140 AND C0377 /YES - DISREGARD IT 1494 31262 3235 DCA TYPE /THE ACTUAL COUNT TO COMPARE WITH 1495 31263 1225 TAD PRINTX 1496 31264 0137 AND C0070 1497 31265 7640 SZA CLA 1498 31266 5306 JMP OUTSI1 /CALLED FROM SI 1499 31267 1132 TAD CONDBA 1500 31270 7100 CLL 1501 31271 1313 TAD LPTSIZ /ALLOW LINE PRINTER BUFFER TO GOBBLE UP ABOUT 40% OF FREE CORE 1502 31272 0047 AND FRECNT 1503 31273 0156 AND C0400 /DON'T LOOK AT TOO MUCH FREE CORE 1504 31274 7450 SNA 1505 31275 1047 TAD FRECNT 1506 31276 7430 SZL 1507 31277 7106 CLL RTL /THE LINE PRINTER GETS 4 TIMES AS MUCH 1508 31300 7041 CIA 1509 31301 1235 OUTSI2, TAD TYPE /CURRENT COUNT 1510 31302 1312 TAD OUTLIM 1511 31303 7710 SPA CLA 1512 31304 2255 ISZ OUTSIZ /STILL ROOM 1513 31305 5655 JMP I OUTSIZ 1514 31306 1311 OUTSI1, TAD C7366 1515 31307 5301 JMP OUTSI2 1516 1517 31310 4001 C4001, 4001 1518 31311 7366 C7366, 7366 1519 31312 0025 OUTLIM, 25 1520 31313 4745 LPTSIZ, -DEVTBE-3 1521 31314 5440 OUTOFF, -OUTDIF /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 36 1522 1523 /SEARCH FOR JOB IN CORE 1524 /CALL TAD JOB # 1525 / JMS CORSRC 1526 / MASK 1527 / NOT THERE, AC:=0 1528 / THERE, SAVE FIELD IN AC 1529 1530 1531 /THESE TWO WORDS MUST IMMEDIATELY PRECEDE CORSRC 1532 /THEY MUST ALSO BE ORIGINED AT CORSRC-2 1533 1315 *CORSRC-2 1534 1535 31315 0000 CORCNT, 0 /INIT TO -NUMBER OF USER FIELDS 1536 31316 0000 CORTBE, 0 /INIT TO -((END OF CORTBL)+1) 1537 1538 31317 0000 CORSRC, 0 /ENTER WITH BIT PATTERN TO MATCH 1539 31320 0717 AND I CORSRC /MASK AS SPECIFIED 1540 31321 7041 CIA 1541 31322 3235 DCA CORSR4 /-WHAT WE WANT 1542 31323 6214 RDF /FIGURE OUT WHENCE WE CAME 1543 31324 1144 TAD C6203 1544 31325 3353 DCA CORSR3 /SO WE CAN RETURN 1545 31326 1717 TAD I CORSRC /GET THE MASK 1546 31327 3255 DCA CORSR2 /SAVE IT 1547 31330 2317 ISZ CORSRC /SKIP PAST MASK IN CALL 1548 31331 6201 CDF 1549 31332 1315 TAD CORCNT /-# ENTRIES TO CHECK 1550 31333 3015 DCA AXS1 /USED AS COUNTER 1551 31334 2374 CORSR1, ISZ CORTBP /INCREMENT TABLE POINTER 1552 31335 1374 TAD CORTBP /ARE WE AT END OF TABLE? 1553 31336 1316 TAD CORTBE 1554 31337 7710 SPA CLA 1555 31340 5344 JMP CORSR5 /NO 1556 31341 7126 STL RTL 1557 31342 1162 TAD CORTBA /YES, START ALL OVER AT FIELD 2 1558 31343 3374 DCA CORTBP 1559 31344 1774 CORSR5, TAD I CORTBP /GET TABLE ENTRY 1560 31345 0255 AND CORSR2 /MASK IT 1561 31346 1235 TAD CORSR4 /COMPARE WITH DESIRED ENTRY 1562 31347 7650 SNA CLA 1563 31350 5355 JMP CORSR6 /FOUND IT! 1564 31351 2015 ISZ AXS1 /NOT YET 1565 31352 5334 JMP CORSR1 /KEEP GOING 1566 31353 0000 CORSR3, 0 /RETURN WITH AC=0 1567 31354 5717 JMP I CORSRC /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 37 1568 1569 31355 1162 CORSR6, TAD CORTBA /WE HAVE IT; GET CORTBL INDEX 1570 31356 7041 CIA 1571 31357 1374 TAD CORTBP 1572 31360 3015 DCA AXS1 /FIELD # 1573 31361 1235 TAD CORSR4 /WE HAVE TO SET MODE BIT APPROPRIATELY 1574 31362 7041 CIA /RECOMPLEMENT CALLING JOB # 1575 31363 0142 AND C0600 /A PHANTOM? 1576 31364 7650 SNA CLA /EXEC MODE? 1577 31365 1113 TAD C0010 /NO - SET USER MODE BIT 1578 31366 1015 TAD AXS1 /SET UP SAVE FIELD 1579 31367 7106 CLL RTL /SHIFT AND ADD DATA FIELD 1580 31370 7004 RAL 1581 31371 1015 TAD AXS1 1582 31372 2317 ISZ CORSRC /SKIP TO INDICATE SUCCESS 1583 31373 5353 JMP CORSR3 /BACK 1584 31374 7002 CORTBP, CORTBL+1 / "ROUND-ROBIN" POINTER 1585 1586 /WHEN THE USER EXECUTES A "SEA" IOT, 1587 /WE MUST DO TWO THINGS: 1588 / 1) SET THE ERROR ENABLE BIT IN STR0 1589 / 2) SAVE THE USER'S AC IN THE JOB DATA AREA 1590 / JSEREN IS SET HERE 1591 / WE GO TO USEA1 TO SAVE THE ERROR ADDRESS 1592 /JSEREN MAY BE CLEARED BY .RUN, START, OR 1593 /A USER EXECUTING A "CLEAR STATUS" IOT. 1594 1595 31375 6211 USEA, DATFLD /SET JSEREN WHEN USER EXECUTES SEA 1596 31376 1561 TAD I CJOBDA /POINTS TO WORD 0 OF JOB DATA AREA 1597 31377 7001 IAC /POINTS TO STR0 1598 31400 4460 IOR /OR IN JSEREN 1599 31401 2000 JSEREN 1600 31402 6201 CDF 1601 31403 5604 JMP I .+1 1602 31404 7271 USEA1 /GO PICK UP ERROR ADDRESS /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 38 1603 1604 1605 /GET A BUFFER FROM FREE LIST 1606 /CALL TAD (ADDRESS TO STORE LINK) 1607 / GETBLK 1608 / NONE AVAILABLE 1609 / OK WITH LINK STORED 1610 1611 GETB, 1612 31405 0000 GETDB2, 0 1613 31406 3362 DCA GETBT /SAVE ADDRESS TO SAVE PTR 1614 31407 6214 RDF /SAVE CALLING FIELD 1615 31410 1144 TAD C6203 1616 31411 3235 DCA GETB1 /SO WE CAN GET BACK 1617 31412 6211 DATFLD 1618 31413 1046 TAD FREE /ANY BUFFERS LEFT? 1619 31414 7450 SNA 1620 31415 5235 JMP GETB1 /NONE LEFT 1621 31416 3762 DCA I GETBT /STORE LINK IN ADDRESS SPECIFIED 1622 31417 7240 STA /NOW WE'LL BE GOOD GUYS 1623 31420 1046 TAD FREE /AND PREPARE TO CLEAR THE BUFFER 1624 31421 3015 DCA AXS1 1625 31422 1446 TAD I FREE /REMOVE FROM FREE LIST 1626 31423 3046 DCA FREE /SET NEW POINTER TO FREE LIST 1627 31424 2205 ISZ GETB /INDICATES SUCCESS 1628 31425 7240 STA /DECREMENT FREE COUNT 1629 31426 1047 TAD FRECNT 1630 31427 3047 DCA FRECNT 1631 31430 1041 TAD C7770 /8 WORDS TO ZERO 1632 31431 3362 DCA GETBT 1633 31432 3415 DCA I AXS1 1634 31433 2362 ISZ GETBT /DONE? 1635 31434 5232 JMP .-2 /NO 1636 31435 0000 GETB1, 0 /RETURN 1637 31436 5605 JMP I GETB 1638 1639 31437 1106 USTM, TAD L2SA /GET UNITS OF TIME IN AC 1640 31440 3362 DCA USTM1 /SAVE IT 1641 31441 3106 DCA L2SA /ZERO USER'S AC 1642 31442 1362 TAD USTM1 1643 31443 7450 SNA /ANY TIME SPECIFIED? 1644 31444 5461 UUOEXT /NO, SO DON'T SLEEP 1645 31445 5646 JMP I USTM2 /YES, GO PUT TO SLEEP 1646 31446 5155 USTM2, DOUSTM /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 39 1647 1648 /GET A DATA BLOCK 1649 /CALL TAD LINK 1650 / GETDDB 1651 / NONE AVAILABLE 1652 / OK 1653 1654 1655 GETDB0, 1656 31447 0000 DEVWT0, 0 1657 31450 3353 DCA GETDB1 /ADDRESS OF DDB POINTER (USUALLY IN DEVTBL) 1658 31451 6214 RDF 1659 31452 1144 TAD C6203 1660 31453 3300 DCA GETDB5 /SAVE CALLING FIELD SO WE CAN GET OUT 1661 31454 6201 CDF 1662 31455 1353 TAD GETDB1 /GET A BUFFER FROM FREE CORE 1663 31456 4571 GETBLK 1664 31457 5300 JMP GETDB5 /SORRY 1665 31460 6211 DATFLD 1666 31461 2247 ISZ GETDB0 /SUCCESSFUL RETURN 1667 31462 1753 TAD I GETDB1 1668 31463 1033 TAD C0003 1669 31464 3353 DCA GETDB1 /SAVE IT 1670 31465 1051 TAD CLK1 /GET LOW ORDER CLOCK 1671 31466 7006 RTL /AND SHIFT BITS 0-2 INTO AC 9-11 1672 31467 7006 RTL 1673 31470 0035 AND C0007 /GET MOST SIGNIFICANT BITS FROM LOW ORDER 1674 31471 3205 DCA GETDB2 /SAVE THEM 1675 31472 1050 TAD CLK2 /GET HIGH ORDER TIME 1676 31473 7006 RTL /SHIFT LEFT 3 PLACES 1677 31474 7004 RAL 1678 31475 0041 AND C7770 /KEEP BITS 0-8 1679 31476 1205 TAD GETDB2 /ADD COMPONENT DERIVED FROM CLK1 1680 31477 3753 DCA I GETDB1 /SAVE IN DDB 1681 31500 0000 GETDB5, 0 /RETURN 1682 31501 5647 JMP I GETDB0 1683 1684 1685 1686 31502 7773 CTIMER, -5 1687 31503 2413 TIMCOA, TIMCON 1688 31504 4603 CONJMS, JMSTIM 1689 31505 6224 TTIMEB, TTIMER 1690 31506 1302 L2OUT, TAD CTIMER /AC=-5 1691 31507 3703 DCA I TIMCOA /RESET THE OUTPUT MASTER TIMER 1692 31510 1304 TAD CONJMS 1693 31511 3705 DCA I TTIMEB /PLACE THE TIMER "HOOK" IN CONOUT 1694 31512 3744 DCA I TTOFLC /SCHEDULE CONOUT FOR LEVEL 2 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 40 1695 1696 /BEFORE DISMISSING BACK TO USER JOB, IT IS A GOOD IDEA TO CHECK AND SEE IF ANY OTHER 1697 /LEVEL 2 PROCESSING HAS BEEN SCHEDULED WHILE WE WERE WORKING ON THE LAST REQUEST 1698 /WE CAN ASCERTAIN IF THIS IS THE CASE BY COMPARING THE L2QUE EMPTY AND 1699 /FILL POINTERS -- IF THEY ARE EQUAL, THEN WE'RE DONE, AND CAN GO TO L2EX1, 1700 /WHERE BOTH POINTERS ARE RESET. IF UNEQUAL, WE GET THE NEXT ENTRY POINTED 1701 /TO BY L2QE, AND DISPATCH TO IT LEAVE LEVEL 2 1702 1703 31513 6201 L2EXIT, CDF 1704 31514 6002 IOF /NO INTERRUPTS WHILE CHECKING L2QUE STATUS 1705 31515 7200 CLA 1706 31516 1747 TAD I L2KEY 1707 31517 7640 SZA CLA 1708 31520 5750 JMP I CONINP /KEYBOARDS NEED SERVICE - TAKE CARE OF THEM FIRST 1709 31521 1013 L2EX0, TAD L2Q /ARE FILL AND EMPTY POINTERS EQUAL? 1710 31522 7041 CIA 1711 31523 1014 TAD L2QE /-FILL PTR + EMPTY PTR 1712 31524 7650 SNA CLA 1713 31525 5332 JMP L2EX1 /YES - WE ARE CAUGHT UP 1714 31526 1414 TAD I L2QE /NO; GET ADDRESS FROM L2QUE 1715 31527 3005 DCA JOBSWA 1716 31530 6001 ION /INTERRUPT BACK ON 1717 31531 5405 JMP I JOBSWA /DISPATCH 1718 1719 31532 1346 L2EX1, TAD L2QTA 1720 31533 3014 DCA L2QE 1721 31534 1346 TAD L2QTA 1722 31535 3013 DCA L2Q /RESET FILL POINTER 1723 31536 1744 TAD I TTOFLC 1724 31537 7650 SNA CLA 1725 31540 5745 JMP I CONOUA /PRINTERS NEED SERVICE 1726 31541 1351 TAD L2SFA 1727 31542 5743 JMP I .+1 /NOW BACK TO WORK 1728 31543 0345 RESTOR 1729 1730 31544 7566 TTOFLC, TTOFLG 1731 31545 6213 CONOUA, CONOUT 1732 31546 7007 L2QTA, L2QTB-1 1733 31547 7572 L2KEY, KEYC 1734 31550 2006 CONINP, CONIN 1735 31551 0103 L2SFA, L2SF 1736 31552 5364 KBDJOA, DEVJOB /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 41 1737 1738 GETDB1, 1739 CLST0, 1740 31553 0000 KBDDLM, 0 /ROUTINE TO SET DELIMITER FLAG IN STR1 1741 31554 1133 TAD CONDDB 1742 31555 4752 JMS I KBDJOA /GET JOB # 1743 31556 3057 DCA BONUS /GIVE HIM/HER HIGHEST SCHEDULER PRIORITY 1744 31557 1037 TAD C0100 /JSDEL 1745 31560 4502 JMS I SETFLG /SET HIS/HER DELIMITER BIT 1746 31561 5753 JMP I KBDDLM /AND BACK 1747 1748 GETBT, 1749 USTM1, 1750 31562 0000 CLSTR1, 0 /ROUTINE TO CLEAR BITS IN STR1 1751 31563 7040 CMA /ENTER WITH BITS TO CLEAR IN AC 1752 31564 3353 DCA CLST0 /SAVE MASK OF BITS TO SAVE 1753 31565 6201 CDF 1754 31566 4476 GETJTW /GET CURRENT SETTING OF STR1 1755 31567 0001 JOBSTS+1 1756 31570 0353 AND CLST0 /CLEAR SELECTED BITS 1757 31571 6211 DATFLD 1758 31572 3405 DCA I JOBSWA /SAVE CLEARED STATUS REGISTER 1759 31573 5762 JMP I CLSTR1 /RETURN 1760 1761 31574 1141 URK050, TAD C0005 1762 31575 1032 UDTXA0, TAD C0002 1763 31576 7110 CLL RAR 1764 31577 6212 CIF DATFLD-1 /FIELD 1 DTA UUO SERVICE 1765 31600 5601 JMP I .+1 1766 31601 1423 UUDTRK /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 42 1767 1768 1602 *FISUBL+1202 1769 /BLOCK TRANSFER 1770 /CALL BLT 1771 / 62S1 SELECT SOURCE DATA FIELD 1772 / SOURCE 1773 / 62D1 SELECT DESTINATION DATA FIELD 1774 / DESTINATION 1775 / -NUMBER WORDS 1776 / RETURN 1777 BLT0, 1778 31602 0000 RUNTDB, 0 1779 31603 1602 TAD I BLT0 /GET SOURCE FIELD SELECT 1780 31604 3227 DCA BLT1 /SAVE 1781 31605 2202 ISZ BLT0 /POINTS TO SOURCE ADDRESS 1782 31606 7240 STA 1783 31607 1602 TAD I BLT0 /CORE ADDRESS -1 OF SOURCE 1784 31610 3015 DCA AXS1 /AUTO INDEX 1785 31611 2202 ISZ BLT0 /POINTS TO DESTINATION FIELD SELECT 1786 31612 1602 TAD I BLT0 /GET DESTINATION SELECT 1787 31613 3231 DCA BLT2 /SAVE 1788 31614 2202 ISZ BLT0 /POINTS TO DEST. ADD 1789 31615 7240 STA 1790 31616 1602 TAD I BLT0 /DEST. ADD-1 1791 31617 3016 DCA AXS2 /AUTO INDEX 1792 31620 2202 ISZ BLT0 /POINTS TO -WORD COUNT 1793 31621 1602 TAD I BLT0 1794 31622 3237 DCA BLTC /SAVE 1795 31623 2202 ISZ BLT0 /RETURN ADDRESS 1796 31624 6214 RDF 1797 31625 1144 TAD C6203 1798 31626 3235 DCA BLTF /SAVE RETURN FIELD SELECT 1799 31627 0000 BLT1, 0 /SELECT SOURCE DATA FIELD 1800 31630 1415 TAD I AXS1 1801 31631 0000 BLT2, 0 /SELECT DESTINATION DATA FIELD 1802 31632 3416 DCA I AXS2 1803 31633 2237 ISZ BLTC /DONE? 1804 31634 5227 JMP BLT1 /NO 1805 31635 0000 BLTF, 0 /RETURN 1806 31636 5602 JMP I BLT0 1807 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 43 1808 1809 /TEST JOB FOR RUNNABILITY 1810 /CALL TAD JOB # 1811 / RUNABL 1812 / NOT RUNNABLE 1813 / RUNNABLE 1814 1815 BLTC, 1816 31637 0000 RUNTST, 0 /COME HERE WITH JOB # IN AC 1817 31640 1044 TAD JOBTBA /TO GET JOBTABLE ADDRESS 1818 31641 4477 GETJTI /GET STR0 1819 31642 0000 JOBSTS 1820 31643 7500 SMA /RUN BIT ON? 1821 31644 5266 JMP RUNTS3 /NO 1822 31645 6211 DATFLD /YES, SEE IF IT RAN AS A COMPUTE BOUND JOB LAST TIME 1823 31646 0040 AND C1000 /IS BIT 1000 ON SHOWING THAT IT WAS A COMPUTE BOUND JOB? 1824 31647 7450 SNA /SNA 1825 31650 5255 JMP RUNTS2 /NO, IT MAY BE READY TO RUN - TEST FURTHER 1826 31651 7040 CMA /LAST TIME IT WAS COMPUTE BOUND, SKIP THIS TURN 1827 31652 0405 AND I JOBSWA /CLEAR THE BIT 1000, SO THAT IT WILL RUN NEXT TIME 1828 31653 3405 DCA I JOBSWA 1829 31654 5264 JMP RUNTS1 /RETURN BY NOT RUNNABLE EXIT 1830 31655 2005 RUNTS2, ISZ JOBSWA /GET THE ADDRESS OF STR1 1831 31656 1405 TAD I JOBSWA 1832 31657 2005 ISZ JOBSWA 1833 31660 2005 ISZ JOBSWA /POINT TO WAIT MASK 1 1834 31661 0405 AND I JOBSWA /ANY STR1-MASK1 MATCHES? 1835 31662 7640 SZA CLA 1836 31663 2237 ISZ RUNTST /YES 1837 31664 6201 RUNTS1, CDF /NO 1838 31665 5637 JMP I RUNTST 1839 31666 0301 RUNTS3, AND RC0147 1840 31667 7450 SNA /FIP REQUEST STILL PENDING? OR ANY ERRORS SINCE HE STOPPED? 1841 31670 5637 JMP I RUNTST /NONE 1842 31671 0035 AND C0007 /IS IT FOR FIP OR SI? 1843 31672 7650 SNA CLA 1844 31673 5263 JMP RUNTS1-1 /FIP - LET HIM FINISH UP SO WE DON'T LOSE A FREE CORE BLOCK 1845 31674 6211 DATFLD 1846 31675 7152 CLL CMA RTR 1847 31676 0405 AND I JOBSWA /CLEAR HIS ERROR ENABLE 1848 31677 3405 DCA I JOBSWA 1849 31700 5263 JMP RUNTS1-1 /ERROR - LET SI REPORT IT NOW 1850 1851 31701 0147 RC0147, JSIOT JSIOTC UUOERF SWPRER SWPWER DSKERR HUNGDV 1852 31702 0000 SIWAIT, 0 1853 1854 1855 31703 1302 L2SI, TAD SIWAIT /NUMBER OF SI COMMANDS IN "WAIT" 1856 31704 1052 TAD COMCNT /PLUS NEW COMMANDS 1857 31705 3052 DCA COMCNT /NOW THEY'RE ALL BACK ON-LINE 1858 31706 3302 DCA SIWAIT /NONE NOW IN WAIT STATE 1859 31707 5467 EXIT /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 44 1860 1861 /SET SYSTEM ERROR CODE 1862 /CALL TAD JOB # 1863 / JMS SYSERR 1864 / ERROR CODE 1865 / NORMAL RETURN 1866 1867 1868 31710 0000 SYSERR, 0 1869 31711 0036 AND C0037 /JOB # ONLY 1870 31712 7450 SNA /IS IT JOB 0? 1871 31713 5332 JMP SYSER1-1 /YES, RETURN 1872 31714 1044 TAD JOBTBA /POINTER TO JOBTBL 1873 31715 4477 GETJTI /GET CURRENT VALUE OF STR0 1874 31716 0000 JOBSTS 1875 31717 0035 AND C0007 /EXTRACT ANY ERROR CODE IN THERE 1876 31720 7640 SZA CLA /ANY OLD BITS? 1877 31721 5333 JMP SYSER1 /YES; DON'T CONFUSE THE ISSUE 1878 31722 1710 TAD I SYSERR /GET THE ERROR CODE SUPPLIED 1879 31723 6211 DATFLD 1880 31724 1405 TAD I JOBSWA /ADD IT TO OLD VALUE OF STR0 1881 31725 3405 DCA I JOBSWA /SAVE THE WHOLE MESS 1882 31726 2005 ISZ JOBSWA 1883 31727 1005 TAD JOBSWA /POINTS TO STR1 1884 31730 4460 IOR /SET THE "ERROR HAS OCCURRED" BIT IN STR1 1885 31731 0002 JSERR 1886 31732 6201 CDF 1887 31733 2310 SYSER1, ISZ SYSERR /SKIP ARGUMENT IN CALL 1888 31734 5710 JMP I SYSERR /RETURN 1889 /SKIP IF DISK NOT ACTIVE 1890 /CALL TAD FIELD # 1891 / JMS DSKACT 1892 / ACTIVE 1893 / NOT ACTIVE 1894 1895 DSUSTA, 1896 31735 3235 DAUTBL, DSUTBL-1 1897 1898 31736 0000 DSKACT, 0 1899 31737 7106 CLL RTL /FIELD # *4 IS MAJOR INDEX IN DSUTBL 1900 31740 1335 TAD DAUTBL /START OF TABLE -1 1901 31741 3015 DCA AXS1 /AUTO INDEX 1902 31742 6211 DATFLD 1903 31743 1415 TAD I AXS1 /FILE 1 BUSY? 1904 31744 1415 TAD I AXS1 / " 2 " 1905 31745 1415 TAD I AXS1 / " 3 " 1906 31746 1415 TAD I AXS1 / " 4 " 1907 31747 6201 CDF 1908 31750 7650 SNA CLA /IF ANY ONE WAS BUSY, AC.NE.0 1909 31751 2336 ISZ DSKACT /NO ACTIVITY; INDEX RETURN 1910 31752 5736 JMP I DSKACT /AND OFF /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 45 1911 1912 /START USER DISC REQUEST FROM QUEUE 1913 /IF THIS ROUTINE IS CALLED, THERE HAD 1914 /BETTER BE SOMETHING IN SQREQ OR DSUTBL 1915 /FOR IT TO FIND. IT WON'T STOP LOOKING! 1916 /CALL JMS DSUSER 1917 / RETURN 1918 1919 31753 0000 DSUSER, 0 1920 31754 1053 TAD SQREQ /IS A SWAP REQUESTED? 1921 31755 7640 SZA CLA 1922 31756 5372 JMP DSUSR5 /YES, DO IT FIRST 1923 31757 6211 DATFLD 1924 31760 1417 DSUSR4, TAD I DSKPTR /GET ENTRY FROM DSUTBL 1925 31761 7450 SNA /IS IT A REQUEST? 1926 31762 5360 JMP DSUSR4 /NO - CHECK NEXT POSITION 1927 31763 7040 CMA 1928 31764 7450 SNA /END OF LIST? 1929 31765 5374 JMP DSUSR2 /YES 1930 31766 7040 CMA /REAL REQUEST FLIP IT BACK AGAIN 1931 31767 6201 CDF 1932 31770 4475 DSGO /YES, START IT UP 1933 31771 5753 JMP I DSUSER /AND BACK 1934 31772 4557 DSUSR5, JMS I SWPIOA /START A SWAP DISK I/O 1935 31773 5753 JMP I DSUSER /RETURN BACK 1936 1937 1938 31774 1335 DSUSR2, TAD DSUSTA /START OF DSU TABLE +7 1939 31775 1035 TAD C0007 1940 31776 3017 DCA DSKPTR 1941 31777 5360 JMP DSUSR4 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 46 1942 1943 2000 *2000 1944 1945 /KEYBOARD SERVICE 1946 /ENTERED WHENEVER CHARACTER IS RECEIVED. --==-- HIGHEST PRIORITY ON LEVEL 2 1947 1948 1000 BELL=1000 1949 32000 0000 KLOST, 0 /NUMBER OF CHARACTERS LOST BECAUSE OF OVERFLOW SINCE THE SYSTEM WAS LAST STARTED 1950 32001 1235 TYPEA, TYPE 1951 32002 0332 KEYB, RINGIN /POINTER TO INPUT RING BUFFER 1952 32003 7755 KEYCNT, -INPUTS 1953 32004 7572 KEYA, KEYC 1954 32005 7755 KEYSIZ, -INPUTS /SIZE OF KEYBOARD INPUT RING BUFFER 1955 32006 3502 CONIN, DCA I SETFLG /CLEAR THE SCHEDULER REQUEST FLAG 1956 32007 7240 CONIN3, STA 1957 32010 6201 CDF 1958 32011 6002 IOF 1959 32012 1604 TAD I KEYA 1960 32013 7500 SMA /ARE WE FINISHED? 1961 32014 5222 JMP CONIN4 /NO 1962 32015 6201 CONEXT, CDF 1963 32016 0502 AND I SETFLG /DID WE AROUSE ANYONE? 1964 32017 7640 SZA CLA 1965 32020 5466 RSCHED /IF NULL JOB IS RUNNING WE MAY TERMINATE IT 1966 32021 5467 EXIT 1967 1968 32022 3604 CONIN4, DCA I KEYA /DECREMENTED COUNT 1969 32023 1604 TAD I KEYA /CHECK FOR OVERFLOW 1970 32024 1205 TAD KEYSIZ 1971 32025 7740 SMA SZA CLA 1972 32026 5272 JMP CONIN0 /OVERFLOW - SKIP AROUND TO THE FIRST ENTRY 1973 32027 6211 DATFLD 1974 32030 1602 TAD I KEYB /GRAB A CHARACTER FROM THE RING BUFFER 1975 32031 3031 DCA TTCHAR 1976 32032 2202 ISZ KEYB 1977 32033 6001 ION 1978 32034 1602 TAD I KEYB /LINE NUMBER 1979 32035 7510 SPA 1980 32036 5306 JMP HIPTR /HIGH SPEED READER 1981 32037 7104 CLL RAL /TIMES 2 1982 32040 1163 TAD DEVTBA 1983 32041 3257 DCA CONINA /POSITION IN DEVICE TABLE 1984 32042 1657 TAD I CONINA 1985 32043 7640 SZA CLA 1986 32044 5255 JMP CONIN1 1987 32045 1257 TAD CONINA /NO DDB SETUP YET 1988 32046 6201 CDF 1989 32047 4571 GETBLK /ESTABLISH A PSEUDO DDB FOR THE TIME BEING 1990 32050 5275 JMP CONIN2 /NONE AVAILABLE - DON'T BOTHER WITH BELLS 1991 32051 6211 DATFLD 1992 32052 1657 TAD I CONINA 1993 32053 4460 IOR 1994 32054 1000 DSI /SET NEW CONSOLE IN SI MODE /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 47 1995 1996 32055 6201 CONIN1, CDF 1997 32056 4471 KEY /PROCESS THIS CHARACTER 1998 32057 0000 CONINA, .-. 1999 32060 7410 SKP /NO ROOM - RING BELL 2000 32061 5275 JMP CONIN2 2001 32062 6211 DATFLD 2002 32063 1532 TAD I CONDBA /POINTS TO OUTPUT SIDE 2003 32064 7450 SNA 2004 32065 5275 JMP CONIN2 /NO DDB DON'T BOTHER WITH BELLS 2005 32066 4460 IOR 2006 32067 1000 BELL /RING-A-DING TOO BAD!! 2007 32070 4601 JMS I TYPEA /REMEMBER WE WANT TO RING HIS/HER CHIME 2008 32071 5275 JMP CONIN2 2009 32072 2200 CONIN0, ISZ KLOST /COUNT A LOST CHARACTER 2010 32073 0332 KEYBA, RINGIN /NOP 2011 32074 2202 ISZ KEYB 2012 32075 2202 CONIN2, ISZ KEYB 2013 32076 2203 ISZ KEYCNT /END OF RING BUFFER? 2014 32077 5207 JMP CONIN3 /NO 2015 32100 1273 TAD KEYBA 2016 32101 3202 DCA KEYB /RESET POINTER 2017 32102 1205 TAD KEYSIZ 2018 32103 3203 DCA KEYCNT /AND THE COUNT 2019 32104 5207 JMP CONIN3 2020 2021 32105 3030 PTRPTR, DEVTBE 2022 32106 0705 HIPTR, AND I PTRPTR /GET DDB ADDRESS OF PTR 2023 32107 7450 SNA 2024 32110 5275 JMP CONIN2 /OOPS - HE RELEASED IT 2025 32111 4575 STORE /STASH ITS CHARACTER AWAY 2026 32112 1064 PTRSIZ /SIZE CHECK ROUTINE 2027 32113 7410 SKP 2028 32114 5275 JMP CONIN2 /ALL IS WELL 2029 32115 6201 CDF /OOPS! - RAN OUT OF FREE CORE 2030 32116 6002 IOF 2031 32117 2604 ISZ I KEYA /UN-COUNT THE CHARACTER 2032 32120 7240 STA 2033 32121 1202 TAD KEYB 2034 32122 3202 DCA KEYB /BACK UP THE RING BUFFER POINTER 2035 32123 5724 JMP I .+1 /AND BACK TO THE REMAINDER OF L2 SERVICE 2036 32124 1521 L2EX0 /JUST PAST THE HI-PRIORITY CHECK POINT /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 48 2037 2038 /CHECK DEVICE ASSIGNMENT AND ASSIGN IF AVAILABLE 2039 /CALLING SEQUENCE: 2040 / JMS DEVCHK 2041 / DEVTBL ADDRESS FOR THE DESIRED DEVICE 2042 / RETURN - IF OK TO USE 2043 / IF NOT OK THE RETURN IS THROUGH "UUOERR" 2044 32125 0000 DEVCHK, 0 2045 32126 1725 TAD I DEVCHK /GET DEVTBL POINTER 2046 32127 2325 ISZ DEVCHK /INDEX PAST PARAMETER 2047 32130 3150 DCA WS2 /DEVTBL ADDRESS 2048 32131 6214 RDF /THE FIELD FROM WHERE WE CAME 2049 32132 1144 TAD C6203 2050 32133 3356 DCA DEVEXT 2051 32134 6211 DATFLD 2052 32135 1550 TAD I WS2 /DDB ADDRESS 2053 32136 7440 SZA /IN USE? 2054 32137 5360 JMP DEVCH1 /YES 2055 32140 1150 TAD WS2 2056 32141 6201 CDF 2057 32142 4572 GETDDB /GET DATA BLOCK 2058 32143 5470 REDO 2059 32144 6211 DATFLD 2060 32145 1550 TAD I WS2 /ADDRESS OF DDB 2061 32146 3004 DCA WS1 2062 32147 1150 TAD WS2 /DEVTBE+UNIT# 2063 32150 1370 TAD DEVCH0 /-DEVTBE 2064 2065 32151 3404 DCA I WS1 /SAVE IN WORD 0 OF DDB 2066 32152 2004 ISZ WS1 /POINTS TO JOB # IN DDB 2067 32153 1160 TAD JOB 2068 32154 0036 AND C0037 2069 32155 3404 DCA I WS1 /SAVE OWNER JOB 2070 32156 0000 DEVEXT, 0 2071 32157 5725 JMP I DEVCHK /RETURN 2072 2073 32160 3015 DEVCH1, DCA AXS1 /NOW POINTS TO WORD 0 OF DDB 2074 32161 1160 TAD JOB 2075 32162 7041 CIA 2076 32163 1415 TAD I AXS1 /DOES THIS JOB OWN DEVICE? 2077 32164 7650 SNA CLA 2078 32165 5356 JMP DEVEXT 2079 32166 5767 JMP I .+1 2080 32167 5144 UUOERR 2081 32170 4750 DEVCH0, -DEVTBE /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 49 2082 2083 2084 2085 0003 UUOCAL=WS0 2086 0004 UUOADD=WS1 2087 2088 / SAVE MACHINE STATUS WHEN USER EXECUTES IOT 2089 /WE MUST CHECK USER IOT FLAG BEFORE ANYTHING ELSE, EVEN CLOCK FLAG 2090 /IF WE DON'T, AND CLOCK INTERRUPTS WITHIN 8 MICROSECONDS AFTER USER 2091 /EXECUTES IOT, THEN WE WOULD TRIP ON CLOCK FLAG, AND NOT BE ABLE TO 2092 /FIGURE OUT WHAT IOT THE USER EXECUTED. 2093 2094 32171 3106 UUO0, DCA L2SA /WE MUST HAVE BEEN IN USER MODE WHEN INTERRUPT OCCURRED! 2095 32172 7010 RAR /SAVE LINK 2096 32173 3105 DCA L2SVLK 2097 32174 1000 TAD 0 2098 32175 3104 DCA L2SV0 /SAVE PC 2099 32176 6234 RIB 2100 32177 3103 DCA L2SF /SAVE FIELDS AND MODE 2101 32200 6204 CINT /CLEAR FLAG 2102 32201 6001 ION 2103 32202 7240 STA 2104 32203 1104 TAD L2SV0 /BACK UP USER PC TO POINT TO IOT IN QUESTION 2105 32204 3004 DCA UUOADD 2106 32205 4150 UDF /SELECT USER DATA FIELD 2107 32206 1404 TAD I UUOADD /GET THE IOT THAT CAUSED ENTRY HERE 2108 32207 3003 DCA UUOCAL 2109 32210 6201 CDF 2110 32211 1302 TAD UUOTBA /START SCANNING THE IOT TABLE 2111 32212 3015 DCA AXS1 2112 32213 1003 TAD UUOCAL 2113 32214 0041 AND C7770 /GET DEVICE CODE 2114 32215 7041 CIA 2115 32216 3346 DCA UUOC77 /SAVE-CODE 2116 32217 4270 JMS UUOSR /FIRST SEE IF IT IS MICRO-CODED 2117 32220 5232 JMP UUO22 2118 32221 1015 UUO3, TAD AXS1 /YES, NOW COMPUTE ADDRESS OF SERVICE ROUTINE 2119 32222 1303 TAD UUOTLL /OFFSET BETWEEN IOT TABLE AND DISPATCH TABLE 2120 32223 3346 DCA UUOC77 /POINTS TO DISPATCH ENTRY 2121 32224 1746 TAD I UUOC77 /GET DISPATCH ADDRESS 2122 32225 3346 DCA UUOC77 /SAVE IT 2123 32226 5746 JMP I UUOC77 /AND JUMP TO IT 2124 32227 4270 UUO7, JMS UUOSR /CHECK FOR NON-RESIDENT IOTS WHICH RETURN ARGUMENTS 2125 32230 5461 UUOEXT /UNDEFINED 2126 32231 5251 JMP UUO8 /FIND # OF ARGUMENTS TO SEND TO FIP /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 50 2127 2128 32232 1003 UUO22, TAD UUOCAL /IS IT AN IOT AT ALL? 2129 32233 0040 AND C1000 2130 32234 7640 SZA CLA 2131 32235 5701 JMP I UHALTA /IT'S A HLT, OSR, OR SOME COMBINATION 2132 32236 1003 TAD UUOCAL /IT'S NOT MICROCODED 2133 32237 7041 CIA 2134 32240 3346 DCA UUOC77 /-IOT CAUSING INTERRUPT 2135 32241 4270 JMS UUOSR /CHECK FOR NON-MICRO-CODED RESIDENT IOTS 2136 32242 7410 SKP 2137 32243 5221 JMP UUO3 /FOUND ONE; NOW GO GET DISPATCH ADDRESS AND AWAY--- 2138 32244 4270 JMS UUOSR /SEARCH FOR SHORT NON-RESIDENT IOTS 2139 32245 5227 JMP UUO7 2140 32246 1003 UUO6, TAD UUOCAL /THROW AWAY BITS 0-2 OF IOT 2141 32247 0140 AND C0377 2142 32250 3003 DCA UUOCAL /AND SAVE IT 2143 32251 1015 UUO8, TAD AXS1 /NOW FIND NUMBER OF ARGUMENTS 2144 32252 1303 TAD UUOTLL /THIS POINTS TO # IN UUOTBL 2145 32253 4305 JMS GETUSP /GET USER PARAMENTERS 2146 32254 1161 UFILE4, TAD CJOBDA /GET POINTER TO STR0 2147 32255 4574 GETJTA 2148 32256 0000 JOBSTS 2149 32257 6211 DATFLD /OR IN "NON-RESIDENT IOT" BIT 2150 32260 4460 IOR /SO FIP WILL RUN IN PLACE OF THIS JOB 2151 32261 0100 JSIOT 2152 32262 1155 TAD FIPJOB /ANYTHING CURRENTLY SCHEDULED? 2153 32263 7640 SZA CLA 2154 32264 5577 WAIT /YES - FIP WILL PICK US UP LATER 2155 32265 1160 TAD JOB 2156 32266 3155 DCA FIPJOB /SO THE SCHEDULER WILL TAKE US AS SOON AS POSSIBLE 2157 32267 5577 WAIT /AND WAIT FOR FIP 2158 2159 32270 0000 UUOSR, 0 /SEARCH FOR MATCH 2160 32271 1415 TAD I AXS1 /GET ENTRY FROM TABLE 2161 32272 7450 SNA /LAST ENTRY? 2162 32273 5670 JMP I UUOSR /YES, RETURN 2163 32274 1346 TAD UUOC77 /NO, CHECK FOR MATCH 2164 32275 7640 SZA CLA /MATCH? 2165 32276 5271 JMP .-5 /NO, KEEP GOING 2166 32277 2270 ISZ UUOSR /YES, SKIP 2167 32300 5670 JMP I UUOSR /AND RETURN 2168 2169 32301 4060 UHALTA, UHALT 2170 32302 7027 UUOTBA, UUOTBL-1 2171 32303 0071 UUOTLL, UUODTB-UUOTBL /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 51 2172 2173 /THIS ROUTINE COPIES THE PARAMETERS SUPPLIED BY THE 2174 /USER PROGRAM INTO *BLOCK IN FREE CORE, WHICH IS POINTED 2175 /TO BY JOBLNK. 2176 /THE IOT ITSELF IS SAVED IN THE FIRST WORD OF THE PARAMETER BLOCK 2177 /IF NO ARGUMENTS ARE REQUIRED, JOBLNK CONTAINS THE IOT, 2178 /RATHER THAN A POINTER TO THE IOT PARAMETER BLOCK. 2179 /FIP CAN TELL BY EXAMINING BITS 0-3 OF JOBLNK; IF THEY ARE 2180 /NON-ZERO, JOBLNK IS AN ADDRESS; IF ZERO, JOBLNK IS THE IOT ITSELF. 2181 /NOW YOU KNOW WHY THE START OF THE FREE CORE LIST MUST ALWAYS BE 2182 /ON OR AFTER 400 OCTAL IN FIELD ONE? 2183 2184 32304 1736 UUODAC, DSKACT 2185 2186 32305 0000 GETUSP, 0 /ENTER WITH PTR -# ARGUEMTS TO GET 2187 32306 3346 DCA UUOC77 /SAVE IT 2188 32307 6201 CDF 2189 32310 1161 TAD CJOBDA /OK - NOW GET PTR TO JOBLNK 2190 32311 4574 GETJTA 2191 32312 0007 JOBLNK 2192 32313 3345 DCA UUOLNK /AND SAVE IT 2193 32314 1746 TAD I UUOC77 2194 32315 7450 SNA /ANY ARGUMENTS? 2195 32316 5347 JMP GETUS1 /NO - JUST SAVE IOT IN JOBLNK 2196 32317 6201 CDF 2197 32320 3346 DCA UUOC77 /YES. SAVE # ARGUMENTS 2198 32321 7344 CLL CLA CMA RAL /CAN WE GET PARAMETER BLOCKS? 2199 32322 1047 TAD FRECNT 2200 32323 7750 SPA SNA CLA 2201 32324 5470 REDO /NO - TRY LATER 2202 32325 1345 TAD UUOLNK /PUT ADDRESS OF LINKAGE BLOCK IN UUOLNK 2203 32326 4571 GETBLK /GET A FREE BLOCK 2204 32327 7402 HLT /WHAT? "FRECNT" SAID THERE WERE PLENTY!! 2205 32330 6211 DATFLD 2206 32331 1745 TAD I UUOLNK /GET ADDRESS OF PARAMETER BLOCK 2207 32332 6201 CDF 2208 32333 3345 DCA UUOLNK /SAVE IT IN BLT CALLING SEQUENCE 2209 32334 7240 STA /GET POINTER TO USER PARAMETERS-1 2210 32335 1106 TAD L2SA 2211 32336 3343 DCA UUSRC /SAVE FOR BLT CALL 2212 32337 1151 TAD UUDF /MOVE USER PARAMETERS TO LINKAGE AREA IN DATFLD 2213 32340 3342 DCA .+2 2214 32341 4567 BLT 2215 32342 0000 0 /SOURCE FIELD SELECT 2216 32343 0000 UUSRC, 0 /SOURCE ADDRESS 2217 32344 6211 DATFLD /DESTINATION FIELD SELECT 2218 32345 0000 UUOLNK, 0 /DESTINATION ADDRESS 2219 32346 0000 UUOC77, 0 /-#WORDS 2220 32347 1003 GETUS1, TAD UUOCAL /NOW GET IOT 2221 32350 6211 DATFLD 2222 32351 3745 DCA I UUOLNK /AND SAVE IT IN APPROPRIATE PLACE 2223 32352 6201 CDF 2224 32353 5705 JMP I GETUSP /RETURN /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 52 2225 2226 /STASH LEVEL 2 REQUESTS FROM FIELD 1 2227 2228 2229 32354 0000 QUEUE0, 0 2230 32355 3413 DCA I L2Q /QUEUE REQUEST FROM FIELD 1 2231 32356 6213 CIF DATFLD 2232 32357 5754 JMP I QUEUE0 /AND BACK 2233 2234 L2689, 2235 IFNZRO D689 < 2236 CIF DATFLD 2237 JMP I .+1 /TO FIELD 1 689 CARRIER SERVICE 2238 DFCARR > 2239 2364 IFNZRO DC08A <*2364 2240 32364 7200 T8OUT, CLA /DC08A CODE CALLED FROM "CONOUT" 2241 32365 1376 TAD T8OBF2 /FIND ACTIVE OUTPUT REGISTER 2242 32366 1003 TAD WS0 2243 32367 3270 DCA UUOSR 2244 32370 1031 TAD TTCHAR /CHARACTER TO BE OUTPUT 2245 32371 7104 CLL RAL 2246 32372 1377 TAD T8STOP 2247 32373 3670 DCA I UUOSR /STASH IT COMPLETE WITH STOP & START BITS 2248 32374 5775 JMP I .+1 2249 32375 6351 CONTLS+1 2250 32376 0037 T8OBF2, SKPTBL-OUTREG+1 2251 32377 3000 T8STOP, 3000 > 2252 IFNZRO CPU&7776 <*2360 2253 KLEN, SKPTBL-1 2254 KDEV, SKPTBL-1 2255 TIMER4, CLA 2256 TAD KDEV /END OF LIST; RE-SET THE POINTER 2257 DCA KLEN 2258 L2TIME=. 2259 ISZ KLEN /MAKE SURE THAT THE KL8E'S STAY ENABLED 2260 DATFLD 2261 TAD I KLEN 2262 CDF 2263 SMA 2264 JMP TIMER4 /END OF LIST, RESET POINTER FOR NEXT TIME 2265 TAD C0004 /CONSTRUCT A "KIE" 2266 DCA .+2 2267 IAC 2268 .-. 2269 CLA > /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 53 2270 2271 2400 *2400 2272 32400 IFZERO CPU&7776 2273 32400 2051 L2TIM2, ISZ CLK1 /UPDATE LOW ORDER DAY CLOCK 2274 32401 5211 JMP L2TIM3 /NOTHING UNUSUAL 2275 32402 2050 ISZ CLK2 /UPDATE HIGH ORDER TIME. WOW! 2276 32403 5211 JMP L2TIM3 2277 32404 2166 ISZ DATE /WOULD YOU BELIEVE IT'S MIDNIGHT! 2278 32405 1336 TAD ICLK2 /REINITIALIZE THE CLOCK FOR ANOTHER 2279 32406 3050 DCA CLK2 /24 HOURS WORTH OF TICKS 2280 32407 1335 TAD ICLK1 /AND BUMP THE DATE ONE 2281 32410 3051 DCA CLK1 /(EVERY MONTH HAS 31 DAYS FOR OUR PDP-8) 2282 32411 6213 L2TIM3, CIF DATFLD /DECREMENT TIMERS 2283 32412 4737 JMS I TIMERA /ROUTINE TO RUN TIMERS 2284 32413 7773 TIMCON, -5 /TIMES OUT EVERY FIVE SECONDS 2285 32414 1506 L2OUT /SCHEDULE "CONOUT-TIMER" SERVICE 2286 32415 0000 TIMPTR, 0 /NON-ZERO IF BUSY 2287 32416 1112 L2PTR /WHERE TO GO WHEN READER HANGS 2288 32417 0000 TIMCDR, 0 /NON-ZERO IF BUSY 2289 32420 2544 L2CDR /WHERE TO GO IF THE CARD READER HANGS 2290 32421 0000 TIMSI, 0 /NON-ZERO WHEN SI IS IN THE WAIT STATE 2291 32422 1703 L2SI /WHERE TO GO WHEN IT TIMES OUT 2292 32423 0000 TIMFIP, 0 /NON-ZERO IF "FIPLOCK" IS ON 2293 32424 5375 L2FIP /WHERE TO GO TO TURN "FIPLOCK" OFF 2294 32425 0000 TIM689, 0 /NON-ZERO IF ACTIVE 2295 32426 2360 L2689 /WHERE TO GO TO CHECK CARRIER STATUS 2296 32427 2043 TIMER3, ISZ JOBTIM 2297 32430 7000 NOP 2298 32431 6202 CIF /INHIBIT INTERRUPTS WHILE WE UN-BUMP THE CLOCK 2299 32432 7340 CLL STA 2300 32433 1110 TAD CLOCK 2301 32434 3110 DCA CLOCK 2302 32435 7430 SZL /HAVE WE COUNTED ALL THE SCHEDULED SYSTEM TICKS? 2303 32436 5200 JMP L2TIM2 /NO /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 54 2304 2305 /"RSCHED" IS ENTERED AT THIS POINT 2306 /RSCHED'S FUNCTION IS TO FIND JOBS TO RUN, REGARDLESS 2307 /OF WHERE THEY MAY CURRENTLY RESIDE. IF THEY ARE IN CORE, 2308 /GOOD; IF NOT, THE NECESSARY STEPS WILL BE TAKEN TO 2309 /BRING THEM INTO CORE. IN THE LATTER CASE, WE WILL THEN 2310 /GO OFF AND FIND SOMETHING TO DO WHILE THE NON-RESIDENT 2311 /JOB IS MADE RESIDENT. 2312 2313 32437 1160 SCHED0, TAD JOB /GET CURRENT JOB 2314 32440 0142 AND C0600 2315 32441 7640 SZA CLA 2316 32442 5467 EXIT /?? - DON'T BUMP OFF A PHANTOM! 2317 32443 1112 TAD SCHNEW /IS THIS SOMETHING THAT CAN BE BUMPED OFF? 2318 32444 7450 SNA 2319 32445 5251 JMP SCHE12 /YES - GET RID OF HIM/HER 2320 32446 1043 TAD JOBTIM /HAS HE USED A FULL TIME SLICE YET? 2321 32447 7750 SPA SNA CLA 2322 32450 5467 EXIT /NO, GO BACK TO HIM/HER 2323 32451 6001 SCHE12, ION 2324 32452 4472 SAVJOB /YES. SAVE ITS STATE. SET JOB=0 2325 32453 7240 STA 2326 32454 3112 DCA SCHNEW /SET FOR FULL TIME SLICES 2327 32455 1147 TAD CURJOB /DID FILE TRANSFER PROCESSING CUT INTO SOMEONE'S TIME SLICE? 2328 32456 7440 SZA 2329 32457 5331 JMP SCHEI6 /YES - START IT BACK UP 2330 32460 1340 TAD NXTMAX 2331 32461 3741 DCA I NXTJCA /NUMBER OF JOBS TO CONSIDER 2332 32462 1053 TAD SQREQ /SWAP REQUEST IN PROGRESS? 2333 32463 7650 SNA CLA /IF SO, THERE IS NO POINT IN GOING FURTHER NOW. 2334 32464 5375 JMP SCHED1 /NO - PROCEED /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 55 2335 2336 /SCHEDULE NEXT RESIDENT JOB 2337 /THIS IS THE ENTRY FOR "SCHED" 2338 /WE ONLY COME HERE IF A SWAP IS IN PROGRESS 2339 /OR IF WE FIND THE JOB WE REALLY 2340 /WANT TO RUN IS CURRENTLY INDISPOSED TO RUNNING. SCHED 2341 /WILL FIND SOME RESIDENT JOB TO RUN. IF NO JOB IS 2342 /RUNNABLE OR RESIDENT, JOB 0 (THE NULL JOB) IS RUN. 2343 2344 32465 1042 SCHEDI, TAD FANCOR /CHECK FOR PHANTOMS FIRST SO 2345 32466 3003 DCA WS0 /START AT FIELD 2 2346 32467 1742 TAD I SCHMUC /NUMBER OF USER CORE FIELDS TO CONSIDER 2347 32470 7104 CLL RAL /TIMES 2 2348 32471 3743 DCA I NXTCNA /ON THE SECOND PASS WE MAY PICK UP A COMPUTE-BOUND JOB 2349 32472 1742 TAD I SCHMUC /NUMBER OF FIELDS 2350 32473 3004 DCA WS1 2351 32474 1403 SCHEI3, TAD I WS0 2352 32475 0040 AND C1000 /CHECK FOR "NOTRUN" 2353 32476 7440 SZA 2354 32477 5304 JMP SCHEI4 /WE FOUND ONE 2355 32500 2003 ISZ WS0 2356 32501 2004 ISZ WS1 2357 32502 5274 JMP SCHEI3 /TRY AGAIN 2358 32503 5734 JMP I SCHNXT /LOOK FOR SOMEONE TO RUN ON BORROWED TIME 2359 2360 32504 7040 SCHEI4, CMA 2361 32505 0403 AND I WS0 /REMOVE THE "NOTRUN" BIT 2362 32506 3403 DCA I WS0 2363 32507 1403 TAD I WS0 2364 32510 0142 AND C0600 /IS IT A PHANTOM? 2365 32511 7640 SZA CLA 2366 32512 5317 JMP SCHEI5 /YES - THEN IT MUST BE READY TO EXECUTE 2367 32513 1403 TAD I WS0 2368 32514 0036 AND C0037 2369 32515 4501 RUNABL /IS IT RUNNABLE? 2370 32516 5300 JMP SCHEI3+4 /NO 2371 32517 1403 SCHEI5, TAD I WS0 /YES - IT MUST BE RUNNABLE 2372 32520 3003 SCHEI2, DCA SCHNJN /IS JOB IN CORE? 2373 32521 1003 TAD SCHNJN /SEARCH CORTBL FOR HIM/HER 2374 32522 4570 CORE 2375 32523 6637 SWAP LOCK FIP SI CJOB 2376 32524 5465 SCHED /NOT THERE; HAVE TO SWAP HIM/HER IN LATER 2377 32525 3103 DCA L2SF /YES - SET UP SAVE FIELD 2378 32526 1003 TAD SCHNJN /RESTORE REST OF LEVEL 2 REGISTERS 2379 32527 4473 RESJOB 2380 32530 5474 START /START JOB 2381 2382 32531 3003 SCHEI6, DCA SCHNJN /SAVE JOB NUMBER 2383 32532 3147 DCA CURJOB /CLEAR "REMEMBERED" JOB 2384 32533 5321 JMP SCHEI2+1 /NOW GO START HIM/HER BACK UP /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 56 2385 2386 32534 4000 SCHNXT, NXTCO1 2387 32535 0400 ICLK1, -INCLK1 2388 32536 7455 ICLK2, -INCLK2-1 2389 0003 SCHNJN=WS0 2390 0002 SCHSI=C0200 2391 32537 2600 TIMERA, TIMER0 2392 32540 7753 NXTMAX, -JOBMAX-1 2393 32541 4600 NXTJCA, NXTJCT 2394 32542 1315 SCHMUC, CORCNT 2395 32543 4072 NXTCNA, NXTCNT 2396 32544 6211 L2CDR, DATFLD 2397 32545 1762 TAD I UUCDR1 2398 32546 3015 DCA AXS1 2399 32547 1415 TAD I AXS1 2400 32550 6201 CDF 2401 32551 4463 ERROR /PASS HUNG DEVICE ERROR TO THE USER 2402 32552 0006 HUNGDV 2403 32553 6212 CDL20, CIF DATFLD-1 2404 32554 5755 JMP I .+1 2405 32555 1705 CDL21 2406 32556 7001 UUCDR0, IAC 2407 32557 7001 IAC 2408 32560 3003 DCA UUOCAL /SAVE THE IOT INDICATOR 2409 32561 4767 JMS I CDRCHK /SEE IF IT'S OK FOR HIM/HER TO USE THE CARD READER 2410 32562 3034 UUCDR1, DEVTBE+4 2411 32563 1003 TAD UUOCAL /ALL IS WELL 2412 32564 6212 CIF DATFLD-1 2413 32565 5766 JMP I .+1 /OFF TO THE CARD READER HANDLER 2414 32566 1736 UUCDR 2415 32567 2125 CDRCHK, DEVCHK 2416 32570 7240 REDO0, STA /IF WE CAN'T FINISH AN IOT FOR LACK OF SYSTEM 2417 32571 1104 TAD L2SV0 /FACILITIES, WE BACK UP THE USER'S PC TO POINT 2418 32572 3104 DCA L2SV0 /TO THE SAME IOT AND HOPE THAT LATER ON THINGS WILL LOOSEN UP. 2419 32573 6201 WSCHED, CDF /THE USER PROGRAM IS TO GO INTO A WAIT 2420 32574 5251 JMP SCHE12 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 57 2421 2422 2423 2424 32575 1055 SCHED1, TAD FIT /SOMETHING LEFT FROM LAST PASS THROUGH SCHEDULER? 2425 32576 0036 AND C0037 /JOB ONLY 2426 32577 7440 SZA 2427 32600 5211 JMP SCHED4 /YES 2428 32601 1052 TAD COMCNT /SI REQUESTED? 2429 32602 7650 SNA CLA 2430 32603 5206 JMP SCHED6 /NO 2431 32604 1002 TAD SCHSI 2432 32605 5240 JMP SCHED8 /YES - SCHEDULE IT 2433 32606 1155 SCHED6, TAD FIPJOB /SOMETHING WAITING FOR FIP? 2434 32607 7450 SNA 2435 32610 5216 JMP SCHE13 /NO SPECIFIC JOB 2436 32611 3055 SCHED4, DCA FIT /SAVE IT 2437 32612 1055 TAD FIT 2438 32613 4501 RUNABL /IS IT STILL GOOD? 2439 32614 7410 SKP /NO 2440 32615 5221 JMP SCHED5 /YES - CHECK IT OUT 2441 32616 4670 SCHE13, JMS I SCHNXA /GET NEXT RUNNABLE JOB 2442 32617 3055 DCA FIT /SAVE JOB # 2443 32620 3057 DCA BONUS /BONUS JOB ALREADY PICKED UP 2444 32621 1055 SCHED5, TAD FIT 2445 32622 1044 TAD JOBTBA 2446 32623 4477 GETJTI /GET CONTENTS OF STR0 2447 32624 0000 JOBSTS 2448 32625 7006 RTL /PUT ERROR ENABLE IN THE LINK 2449 32626 0156 AND SCFIP /NEED FIP? 2450 32627 7440 SZA 2451 32630 5237 JMP SCHED7 /YES; SCHEDULE FIP FOR HIM/HER 2452 32631 6211 DATFLD 2453 32632 1405 TAD I JOBSWA /GET STR0 AGAIN 2454 32633 6201 CDF 2455 32634 0035 AND C0007 /ANY ERROR BITS ON? 2456 32635 7660 SZA SNL CLA /EVEN IF THERE ARE WE'LL LET HIM/HER HANDLE IT IF HE'S ENABLED (LINK=1) 2457 32636 1002 TAD SCHSI /CALL SI TO HANDLE ERROR 2458 32637 1055 SCHED7, TAD FIT /UPDATE "FIT" IF THERE'S A NEED FOR FIP OR SI 2459 32640 3055 SCHED8, DCA FIT 2460 32641 1055 TAD FIT 2461 32642 0142 SCHED3, AND C0600 /IS FIT JOB FIP OR SI? 2462 32643 7650 SNA CLA 2463 32644 5374 JMP SCHE11 /NO 2464 32645 1442 TAD I FANCOR /IS FIP OR SI IN CORE? 2465 32646 0055 AND FIT /IS IT THE PROPER PHANTOM? 2466 32647 0142 AND C0600 2467 32650 7650 SNA CLA 2468 32651 5272 JMP SCHE15 /NO - SCHEDULE THEIR SWAP IN 2469 32652 1442 TAD I FANCOR /YES - IS THE PHANTOM IN USE? 2470 32653 0036 AND C0037 /JOB # 2471 32654 7640 SZA CLA 2472 32655 5261 JMP SCHED9 /YES - NOT MUCH TO DO NOW 2473 32656 7332 SCLOCK /LOCK PHANTOM FOR THIS JOB 2474 32657 1055 TAD FIT /NO - LOCK PHANTOM FOR THIS USER 2475 32660 3442 DCA I FANCOR /INDICATE THAT THIS FIELD IS NOW LOCKED /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 58 2476 2477 32661 3055 SCHED9, DCA FIT /CLEAR FIT 2478 32662 7326 FANFLD /DISK ACTIVITY HERE? 2479 32663 4671 JMS I SCDACT 2480 32664 5216 JMP SCHE13 /YES - FORGET ABOUT PHANTOM FOR NOW 2481 32665 1442 TAD I FANCOR /NO 2482 32666 5667 JMP I .+1 /NOW GO FINISH BOOKKEEPING 2483 32667 2520 SCHEI2 2484 2485 32670 4603 SCHNXA, NXTJOB 2486 0156 SCFIP= C0400 /FIP 2487 7332 SCLOCK= CLA CLL CML RTR /LOCK BIT AC=2000 2488 32671 1736 SCDACT, DSKACT 2489 7326 FANFLD= CLA STL RTL /PHANTOMS ALWAYS RUN IN FIELD 2 2490 2491 32672 1442 SCHE15, TAD I FANCOR /FANFLD LOCKED, SWAPPED, OR NOTRUN? 2492 32673 0162 AND C7000 2493 32674 7640 SZA CLA 2494 32675 5216 JMP SCHE13 /YES - GO FIND SOMETHING ELSE TO DO NOW 2495 32676 1442 TAD I FANCOR /IS THERE CURRENTLY A USER JOB IN FANFLD? 2496 32677 0036 AND C0037 /IS THERE A USER JOB IN FANFLD? 2497 32700 7640 SZA CLA 2498 32701 5304 JMP SCHE16 /YES, FORCE IT OUT 2499 32702 7326 FANFLD /NO; FINISH:=FANFLD 2500 32703 5327 JMP SCHE14 2501 2502 32704 1442 SCHE16, TAD I FANCOR /IS A PHANTOM IN HERE? 2503 32705 0142 AND C0600 2504 32706 7640 SZA CLA 2505 32707 5216 JMP SCHE13 /YES, GO FIND ANOTHER JOB TO RUN 2506 32710 3111 DCA DEAD /DON'T GO LOOKING FOR AN ALTERNATIVE FIELD! 2507 32711 7326 FANFLD /FORCE JOB OUT OF FANFLD 2508 32712 3056 DCA FORCE 2509 32713 5350 JMP SCHFR1 2510 32714 4570 SCHE10, CORE /FIRST LOOK FOR A FIELD WITH NOTHING IN IT 2511 32715 7777 SWAP LOCK NOTRUN FIP SI NOHOLD CJOB 2512 32716 7410 SKP /NO SUCH FIELDS 2513 32717 5326 JMP SCHE19 /FOUND ONE TO USE 2514 32720 1111 TAD DEAD /ARE THERE ANY OLD DEAD JOBS STILL IN CORE? 2515 32721 7440 SZA 2516 32722 5340 JMP SCHDED /YES - SEE IF WE CAN GET RID OF IT 2517 32723 4570 SCHE18, CORE /LET'S TRY AGAIN 2518 32724 7037 FIPLOK, SWAP LOCK NOTRUN CJOB 2519 32725 5337 JMP SCNOUT /NO, SCAN FOR OUTPUT 2520 32726 0035 SCHE19, AND C0007 /YES 2521 32727 3054 SCHE14, DCA FINISH /FINISH:=FIELD # 2522 32730 1054 TAD FINISH /SET SWAP BIT IN CORTBL ENTRY 2523 32731 1162 TAD CORTBA 2524 32732 3003 DCA SUJT2 /POINTS TO CORTBL ENTRY 2525 32733 7130 STL RAR /AC=4000 (SWAP) 2526 32734 1055 TAD FIT /JOB TO SWAP IN 2527 32735 3403 DCA I SUJT2 /SAVE IN CORTBL 2528 32736 5771 JMP I SCSWAP /SWAP IN /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 59 2529 2530 32737 1372 SCNOUT, TAD SCNSVP /RESTORE CORTBBL POINTER FOR OUTPUT SCANNING 2531 32740 3773 SCHDED, DCA I SCNSV1 2532 32741 4570 CORE /SCAN FOR AVAILABLE FIELD 2533 32742 3600 LOCK+NOTRUN+FIP+SI 2534 32743 5364 JMP SCHE17 /ARE WE STUCK? 2535 32744 0035 AND C0007 2536 32745 3056 DCA FORCE /FIELD TO SWAP OUT 2537 32746 1773 TAD I SCNSV1 /PICK UP POSITION OF POINTER 2538 32747 3372 DCA SCNSVP /SAVE FOR THE NEXT TIME 2539 32750 1056 SCHFR1, TAD FORCE /DISC XFER IN PROGRESS? 2540 32751 4671 JMS I SCDACT 2541 32752 5364 JMP SCHE17 /SEE IF WE CAN TAKE ONE MORE LOOK AROUND 2542 32753 1056 TAD FORCE 2543 32754 1162 TAD CORTBA 2544 32755 3003 DCA SUJT2 /CORTBL POINTER TO FORCED FIELD 2545 32756 3111 DCA DEAD 2546 32757 1056 TAD FORCE 2547 32760 7041 CIA 2548 32761 3054 DCA FINISH /SET FINISH=-FORCE (TO INDICATE SWAP OUT) 2549 32762 5763 JMP I .+1 /NOW GO SET UP THE OUTSWAP 2550 32763 5662 SWPOUT 2551 32764 1111 SCHE17, TAD DEAD /CAN WE LOOK FURTHER? 2552 32765 7650 SNA CLA 2553 32766 5465 SCHED /NO - WE'RE STUCK 2554 32767 3111 DCA DEAD /YES - GUESS WE GOT BAD ADVICE 2555 32770 5323 JMP SCHE18 /GO TAKE ANOTHER LOOK 2556 2557 32771 5670 SCSWAP, SWAPIN 2558 0003 SUJT2= WS0 2559 32772 7002 SCNSVP, CORTBL+1 /VALUE OF CORTBL POINTER AFTER LAST SEARCH 2560 32773 1374 SCNSV1, CORTBP /POINTS TO CORTBL POINTER IN CORE SEARCH ROUTINE 2561 2562 2563 32774 1055 SCHE11, TAD FIT /IS FIT JOB IN CORE? 2564 32775 4570 CORE 2565 32776 6637 SWAP LOCK FIP SI CJOB 2566 32777 5314 JMP SCHE10 /NO - HE HAS TO BE SWAPPED IN 2567 33000 3103 DCA L2SF /SAVE FIELD 2568 33001 1055 TAD FIT /RESTORE LEVEL 2 REGISTERS 2569 33002 4473 RESJOB 2570 33003 3055 DCA FIT /CLEAR FIT 2571 33004 5474 START /START JOB /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 60 2572 2573 0032 SWERER= C0002 /SWPRER 2574 2575 33005 5223 SWPRET, JMP SWERR /ERROR ON SWAP 2576 33006 1162 TAD CORTBA /GET A POINTER TO THIS FIELD'S 2577 33007 1054 TAD FINISH /ENTRY IN CORTBL 2578 33010 3053 DCA SQREQ 2579 33011 1055 TAD FIT /JOB SWAPPED IN 2580 33012 1040 TAD C1000 /NOT RUN BIT 2581 33013 3453 SWGOD1, DCA I SQREQ /STORE IT IN THE CORTABLE 2582 33014 3054 DCA FINISH 2583 33015 3055 DCA FIT /SET ALL CONCERNED WORDS TO ZERO 2584 33016 3056 DCA FORCE 2585 33017 3053 DCA SQREQ 2586 33020 4622 JMS I SWSCON /SEE IF ANY MORE DISC I/O WAITING TO BE ATTENDED TO 2587 33021 5466 RSCHED /RE SCHEDULE 2588 33022 5761 SWSCON, DSKCON 2589 2590 33023 1054 SWERR, TAD FINISH /ERROR WHILE SWAPPING OUT OR SWAPPING IN? 2591 33024 7510 SPA 2592 33025 7041 CIA /DURING SWAP OUT 2593 33026 1162 TAD CORTBA 2594 33027 3053 DCA SQREQ /POINTER TO CORTBA FOR THIS FIELD 2595 33030 1054 TAD FINISH 2596 33031 7710 SPA CLA 2597 33032 5244 JMP SWER1 /WHILE SWAPPING OUT; CODE=3 2598 33033 1032 TAD SWERER /WHILE SWAPPING IN; CODE=2 2599 33034 3242 DCA SWPER1 2600 33035 1055 TAD FIT 2601 33036 0036 SWER2, AND C0037 /GET THE JOB # 2602 33037 7450 SNA /IS IT A PHANTOM? 2603 33040 5213 JMP SWGOD1 /YES, SO NO ERROR CODE TO SET 2604 33041 4463 ERROR /NO JOB BEING SWAPPED IN SO HAVE TO SET ERROR CODE 2605 33042 0000 SWPER1, 0 /ERROR CODE 2606 33043 5213 JMP SWGOD1 /CLEAR ALL THE CONCERNED WORDS BEFORE LEAVING 2607 33044 1033 SWER1, TAD SWER3 /ERROR CODE 2608 33045 3242 DCA SWPER1 2609 33046 1453 TAD I SQREQ /JOB BEING SWAPPED OUT 2610 33047 5236 JMP SWER2 2611 0033 SWER3= C0003 2612 33050 0564 REMJOA, REMJOB 2613 33051 4650 SCHFAN, JMS I REMJOA /REMEMBER WHO'S RUNNING 2614 33052 5465 SCHED /GO RUN THE PHANTOM /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 61 2615 2616 /BOOTSTRAP FOR CRASH RECOVERY, USED TO BRING INIT INTO HIGHEST MEMORY FIELD 2617 33053 6201 BOOT, CDF /IN THE (VERY RARE) EVEN THE SYSTEM 2618 33054 7240 STA /SHOULD CRASH, THIS ROUTINE MAY 2619 33055 3670 DCA I B7751 /BE STARTED AT 4200 OF FIELD 0 2620 33056 3671 DCA I B7750 /WC AND CA 2621 33057 1272 TAD DSKFLD /HIGHEST FIELD 2622 IFZERO RF08 < 2623 33060 6615 DIML 2624 33061 7326 CLA STL RTL 2625 33062 6643 DXAL /TRACK 2 2626 > 2627 IFZERO RF08-40 < 2628 DEAL 2629 NOP /FOR SIZE 2630 CLA 2631 > 2632 33063 6603 DMAR 2633 33064 6622 DFSC /WAIT 2634 33065 5264 JMP .-1 2635 33066 6273 CIF CDF+CORMEM 2636 33067 5000 JMP 0 /OFF TO INIT 2637 2638 33070 7751 B7751, 7751 2639 33071 7750 B7750, 7750 2640 DSKFLD, 2641 33072 0070 IFZERO RF08 2642 IFZERO RF08-40 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 62 2643 2644 /SAVE JOB REGISTERS 2645 /THIS ROUTINE IS USED TO SAVE THE LEVEL 2 REGISTERS 2646 /IN THE JOB DATA AREA. AFTER SAVING THIS 2647 /INFORMATION, JOB IS SET TO 0 TO INDICATE 2648 /THAT NULJOB IS RUNNING 2649 /CALL SAVJOB 2650 / RETURN 2651 2652 33073 0000 SAVJO0, 0 2653 33074 1160 TAD JOB /IS NULJOB RUNNING ALREADY? 2654 33075 7450 SNA 2655 33076 5673 JMP I SAVJO0 /YES - NOTHING TO SAVE 2656 33077 0142 AND C0600 2657 33100 7640 SZA CLA /IS A PHANTOM RUNNING? 2658 33101 5314 JMP SAVJO3 /YES 2659 33102 1161 TAD CJOBDA /MOVE LEVEL TWO REGISTERS TO JOB DATA AREA 2660 33103 4574 GETJTA 2661 33104 0011 JOBREG 2662 33105 3312 DCA .+5 2663 33106 4567 BLT /MOVE PC, LINK, AC TO JOB DATA AREA 2664 33107 6201 CDF /FROM FIELD 0 2665 33110 0104 L2SV0 2666 33111 6211 DATFLD 2667 33112 0000 0 2668 33113 7775 -3 2669 IFNZRO MQREG < 2670 GETJTW /IF THERE'S AN MQ AND MAYBE AN EAE, SAVE THEM TOO 2671 JOBEAE 2672 IFNZRO CPU-1 < 2673 CLA MQA MQL > /LOAD AC FROM MQ, CLEAR MQ 2674 IFZERO CPU-1 < 2675 CLA MQA > /LOAD AC FROM MQ 2676 DATFLD 2677 DCA I JOBSWA > /SAVE IN JOB MQ 2678 IFNZRO EAE < 2679 ISZ JOBSWA /GET POINTER TO JOB SC 2680 IFNZRO CPU-2 < 2681 SCA /GET SC 2682 DCA I JOBSWA > /AND SAVE IT 2683 IFZERO CPU-2 < 2684 SCA /GET SC 2685 CLL RTL /MAKE ROOM FOR MODE AND GT 2686 DCA I JOBSWA /SAVE SC 2687 DPSZ /SKIPS IF MODE B 2688 ISZ I JOBSWA /INCR IF MODE A 2689 SGT /CHECK GT FLAG 2690 ISZ I JOBSWA /INCR, IF GT=0 OR IF MODE A 2691 > > /IF MODE=A THERE MAY BE JUNK IN THE AC AT THIS POINT BUT 2692 /BITS 7-11 ARE GUARANTEED CLEAR 2693 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 63 2694 2695 2696 33114 1160 SAVJO3, TAD JOB /DO WE HAVE A JOB #? 2697 33115 0036 AND C0037 2698 33116 7650 SNA CLA 2699 33117 5346 JMP SAVJO2 /NOT YET 2700 33120 7201 CLA IAC /CORRECT THE CLOCK SINCE IT'S ALWAYS ONE BEHIND 2701 33121 1110 TAD CLOCK /ADD IN ANY TIME HE HASN'T BEEN CHARGED FOR YET 2702 33122 1043 TAD JOBTIM /TO THE NUMBER OF TICKS HE HAS ACCUMULATED 2703 33123 3043 DCA JOBTIM /NOW IT'S OK TO PUT HIM/HER AWAY 2704 33124 6201 CDF /GET POINTER TO LOW ORDER RUNTIME 2705 33125 4476 GETJTW 2706 33126 0023 JOBRTM 2707 33127 7100 CLL 2708 33130 1043 TAD JOBTIM /# TICKS HE USED 2709 33131 6211 DATFLD 2710 33132 3405 DCA I JOBSWA /SAVE THE NEW CUMULATIVE TIME 2711 33133 2005 ISZ JOBSWA 2712 33134 7430 SZL /OVERFLOW INTO HIGH ORDER? 2713 33135 2405 ISZ I JOBSWA /BUMP IT; WOULD NEED 16777216 TICKS FOR THIS TO SKIP!! 2714 33136 1112 TAD SCHNEW /WAS THIS JOB TO HAVE A FULL SLICE? 2715 33137 1043 TAD JOBTIM /ANY PART OF HIS/HER TIME SLICE STILL LEFT? 2716 33140 7750 SPA SNA CLA 2717 33141 5346 JMP SAVJO2 /YES, SO THIS JOB IS NOT A COMPUTE BOUND JOB AT THIS STAGE 2718 33142 1561 TAD I CJOBDA 2719 33143 7001 IAC /STR0 2720 33144 4460 IOR /MAKE HIM/HER COMPUTE BOUND 2721 33145 1000 JCOMBD 2722 33146 3160 SAVJO2, DCA JOB /SIMULATE NULJOB 2723 33147 6211 DATFLD 2724 33150 3561 DCA I CJOBDA /CLEAR POINTER TO CURRENT JOB DATA AREA 2725 33151 6201 CDF 2726 33152 5673 JMP I SAVJO0 /AND EXIT 2727 2728 33153 6667 RUNULL, SCHNUL 2729 DEBUG, /RESTART FOR DEBUGGING 2730 IFZERO DC08A < 2731 IFZERO CPU-1 < /SET PDP-8 CLOCK COUNT 2732 STA 2733 CCF CLB > 2734 IFNZRO CPU-4 2735 IFZERO CPU-4 > 2738 33154 6424 IFNZRO DC08A < T1ON > /TURN ON DC08 CLOCK 2739 IFZERO D689-4 < EDF > /REENABLE DATA PHONES 2740 33155 3112 DCA SCHNEW /ENABLE SCHEDULER TO BUMP NULL JOB 2741 33156 5753 JMP I RUNULL /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 64 2742 2743 3200 *3200 2744 2745 /PROCESS KEYBOARD INPUT CHARACTERS (MAY BE PSEUDO-INPUT) 2746 2747 /MULTI-FIELD ROUTINE 2748 /CALL: CHARACTER IN "TTCHAR" 2749 / JMS KBD 2750 / DEVTBL POINTER 2751 / RETURN; NO ROOM - CHARACTER NOT STORED 2752 / RETURN; CHARACTER STORED 2753 / 2754 0150 KBDCNT=WS2 2755 33200 7566 KBDSIB, -212 /DO NOT MOVE FROM BEGINNING OF A PAGE - SEE "DUPSI" 2756 IFNZRO KBDSIB&177 2757 2758 33201 0000 KBD00, 0 2759 33202 1601 TAD I KBD00 /GET DEVTBL POINTER 2760 33203 3132 DCA CONDBA 2761 33204 6214 RDF 2762 33205 1144 TAD C6203 2763 33206 3266 DCA KBDNSX /REMEMBER FROM WHENCE WE CAME 2764 33207 2201 ISZ KBD00 2765 33210 6211 DATFLD 2766 33211 1532 TAD I CONDBA /GET DDB ADDRESS 2767 33212 3133 DCA CONDDB 2768 33213 4746 KBDSQ, JMS I KBDCON /CHECK ^S/^Q; (ISZ CONDBA IF FEATURE DISABLED) 2769 33214 1533 TAD I CONDDB /YES - GET DDB STATUS 2770 33215 0037 AND C0100 2771 33216 7640 SZA CLA /"SICOM" SET? 2772 33217 5266 JMP KBDNSX /YES - EXIT 2773 33220 1031 TAD TTCHAR /CHECK FOR ^B, ^C 2774 33221 1350 TAD KBDMCB 2775 33222 7110 CLL RAR 2776 33223 7640 SZA CLA /IS IT ^B OR ^C? 2777 33224 5301 JMP KBD05 /NOTHING SPECIAL ABOUT THIS ONE 2778 33225 1133 TAD CONDDB 2779 33226 4751 JMS I KBDCLB /CLEAR HIS/HER INPUT BUFFER 2780 33227 1031 TAD TTCHAR 2781 33230 7010 RAR 2782 33231 7620 SNL CLA /WAS IT ^B OR ^C? 2783 33232 4752 JMS I KBDCHK /WAS ^B TYPED IN USER MODE? 2784 33233 5270 JMP KBD04 /CLEAR OUTPUT 2785 33234 1533 TAD I CONDDB 2786 33235 1040 TAD C1000 /PUT THIS TTY IN SI MODE 2787 33236 3533 DCA I CONDDB /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 65 2788 2789 33237 1264 KBD02, TAD KBDUPA 2790 33240 3031 DCA TTCHAR /CHANGE TO ^ 2791 33241 6201 CDF 2792 33242 4573 PRINT /STASH "^" IN HIS/HER OUTPUT BUFFER 2793 33243 0302 "B /WE DON'T CARE IF "PRINT" FAILS 2794 33244 1243 TAD .-1 2795 33245 3031 DCA TTCHAR /CHANGE TO B 2796 33246 7352 KBD01, CLL STA RTR 2797 33247 7012 RTR 2798 33250 6211 DATFLD 2799 33251 0533 AND I CONDDB /CLEAR "FULL" STATUS 2800 33252 3533 DCA I CONDDB 2801 33253 1533 KBD03, TAD I CONDDB /GET DDB STATUS BITS 2802 33254 0334 AND DUPSI 2803 33255 2133 ISZ CONDDB 2804 33256 7640 SZA CLA /DUPLEX OR SI MODE? 2805 33257 1533 TAD I CONDDB 2806 33260 7650 SNA CLA /AND LOGGED IN? 2807 33261 5265 JMP KBDXIT /NO - SO DON'T ECHO 2808 33262 6201 CDF 2809 33263 4573 PRINT /STASH (TTCHAR) IN HIS/HER OUTPUT BUFFER 2810 33264 0336 KBDUPA, "^ /WE DON'T CARE IF "PRINT" FAILS 2811 33265 2201 KBDXIT, ISZ KBD00 /SHOW SUCCESS 2812 33266 0000 KBDNSX, .-. /BACK TO THE CALLING FIELD 2813 33267 5601 JMP I KBD00 2814 33270 1532 KBD04, TAD I CONDBA 2815 33271 4751 JMS I KBDCLB /CLEAR THE OUTPUT BUFFER 2816 33272 1031 TAD TTCHAR 2817 33273 7010 RAR 2818 33274 7620 SNL CLA /WAS IT ^B OR, OR ^C? 2819 33275 5237 JMP KBD02 /IT WAS ^B 2820 33276 4752 JMS I KBDCHK /USER MODE? 2821 33277 5376 JMP KBDSSI /NO, GO TO SI FOR DOT OR ^B 2822 33300 5732 JMP I KBDCCA /YES, GO DO ^C BUSINESS 2823 33301 1041 KBD05, TAD C7770 /IS THERE PLENTY OF FREE CORE? 2824 33302 1047 TAD FRECNT 2825 33303 7710 SPA CLA 2826 33304 5266 JMP KBDNSX /NO 2827 33305 4752 JMS I KBDCHK /WHICH MODE? 2828 33306 4733 JMS I KBDLRA /SI - CHECK FOR LINE-FEED AND RUBOUT 2829 33307 1533 TAD I CONDDB 2830 33310 0156 AND C0400 /"FULL" FLAG SET? 2831 33311 7640 SZA CLA 2832 33312 5266 JMP KBDNSX /YES - EXIT 2833 33313 1133 TAD CONDDB 2834 33314 4575 STORE /STASH (TTCHAR) IN HIS/HER INPUT BUFFER 2835 33315 6011 KBD06 /FOR SIZE CHECK 2836 33316 5266 JMP KBDNSX /STORE FAILED; BUFFER ALREADY FULL 2837 33317 4752 JMS I KBDCHK /WHICH MODE? 2838 33320 5334 JMP KBD08 /SI 2839 33321 7126 STL RTL /AC=2 2840 33322 1133 TAD CONDDB /POINT TO BREAK MASK 2841 33323 3150 DCA KBDCNT 2842 33324 1550 TAD I KBDCNT /GET THE BREAK MASK 2843 33325 4747 JMS I BRKTSA /IS IT A BREAK CHARACTER? 2844 33326 4731 JMS I KBDBRK /GO SET DEL BIT IN STR1 AND PUT HIS/HER JOB NUMBER IN BONUS /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 66 2845 33327 6211 DATFLD 2846 33330 5253 JMP KBD03 /SEE IF WE SHOULD ECHO /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 67 2847 2848 33331 1553 KBDBRK, KBDDLM 2849 33332 5621 KBDCCA, GIR9 2850 33333 3566 KBDLRA, KBDLRB 2851 DUPSI, 2852 33334 1200 KBD08, TAD KBDSIB /USED AS CONSTANT (MASK) SEE "KBD03+1" 2853 33335 1031 TAD TTCHAR 2854 33336 0376 AND KBDSIM 2855 33337 7640 SZA CLA /IS THIS A BREAK FOR SI? 2856 33340 5253 JMP KBD03 /NO 2857 33341 2052 KBD11, ISZ COMCNT /TO SCHEDULE "SI" 2858 33342 1533 TAD I CONDDB 2859 33343 1037 TAD C0100 /SET "SICOM" 2860 33344 3533 DCA I CONDDB /SAVE NEW KEYBOARD STATUS 2861 33345 5265 JMP KBDXIT /EXIT WITHOUT ECHOING THE DELIMITING CHARACTER 2862 2863 33346 1161 KBDCON, CONSQ 2864 33347 3537 BRKTSA, BRKTST 2865 33350 7576 KBDMCB, -"B+100 /-^B 2866 33351 6642 KBDCLB, CLRBUF 2867 33352 6000 KBDCHK, KBDMOD 2868 33353 1133 KBD09, TAD CONDDB 2869 33354 1141 TAD C0005 2870 33355 3150 DCA KBDCNT /POINTS TO CHARACTER COUNT IN DDB 2871 33356 1550 TAD I KBDCNT 2872 33357 7041 CIA 2873 33360 3150 DCA KBDCNT /NUMBER OF CHARACTERS TO SPIN THROUGH THE BUFFER 2874 33361 3003 DCA WS0 /FAKE HIS/HER BREAK MASK TO ZERO 2875 33362 1133 KBD10, TAD CONDDB 2876 33363 4507 FETCH /FETCH A CHARACTER 2877 33364 5376 JMP KBDSSI /BUFFER EMPTY 2878 33365 3031 DCA TTCHAR /SAVE IT 2879 33366 2150 ISZ KBDCNT /RUB THIS ONE? 2880 33367 7410 SKP 2881 33370 5253 JMP KBD03 /YES - PRINT IT 2882 33371 1133 TAD CONDDB 2883 33372 4575 STORE /NO - PUT IT BACK 2884 33373 6045 ALLOK /NO LIMIT 2885 33374 0040 KB0040, DECHO /NOP /CAN'T FAIL 2886 33375 5362 JMP KBD10 2887 2888 KBDSIM, /THE FOLLOWING INSTRUCTION IS USED AS A CONSTANT 2889 33376 1374 KBDSSI, TAD KB0040 /SET "DECHO"; SCHEDULE SI TO PRINT CURRENT LINE 2890 33377 5341 JMP KBD11 /PRECEDED BY EITHER "." OR "^B" 2891 2892 IFNZRO KB0040&177-174 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 68 2893 2894 3400 *3400 2895 2896 /KEYBOARD IOTS 2897 2898 /SEE IF THE USER IS GOING TO EXECUTE A "JMP .-1" AFTER A NON-SKIPPING "KSF" 2899 2900 33400 1004 JMPTST, TAD UUOADD /ADDRESS OF THE "KSF" 2901 33401 0146 AND C0177 /JUST THE PAGE ADDRESS BITS 2902 33402 1255 TAD C5200 /MAKE UP THE REQUIRED "JMP" INSTRUCTION 2903 33403 7041 CIA 2904 33404 4150 UDF /SELECTS USER'S FIELD 2905 33405 1504 TAD I L2SV0 /USER'S INSTRUCTION 2906 33406 6211 DATFLD 2907 33407 7450 SNA 2908 33410 5217 JMP JMPTS1 /WE CAUGHT HIM/HER! 2909 33411 1002 TAD C0200 /MAYBE IT'S A PAGE 0 "JMP" 2910 33412 7640 SZA CLA 2911 33413 5220 JMP JMPTS0 /NO - MUST BE SOMETHING ELSE - LET HIM/HER CONTINUE 2912 33414 1355 TAD CC7600 /WILL WE BE ON PAGE 0? 2913 33415 0004 AND UUOADD 2914 33416 7650 SNA CLA 2915 33417 1254 JMPTS1, TAD UKEYFL /PUT HIM/HER TO SLEEP - SO HE DOESN'T WASTE OUR TIME 2916 33420 3273 JMPTS0, DCA UKEYC /SAVE WAIT CCONDITION 2917 33421 7132 STL RTR 2918 33422 0533 AND I CONDDB 2919 33423 7650 SNA CLA /NEED XON? 2920 33424 5237 JMP JMPTS2 /NO 2921 33425 1250 TAD UKXON 2922 33426 3031 DCA TTCHAR 2923 33427 2132 ISZ CONDBA /POINT TO OUTPUT SIDE 2924 33430 6201 CDF 2925 33431 4573 PRINT /SEND XON 2926 33432 5577 WAIT /DIDN'T FIT - TRY AGAIN LATER 2927 33433 7352 CLL STA RTR 2928 33434 6211 DATFLD 2929 33435 0533 AND I CONDDB /CLEAR XOFF BIT 2930 33436 3533 DCA I CONDDB 2931 33437 1273 JMPTS2, TAD UKEYC /WAIT FOR FLAG; EXCEPT KSF WITHOUT JMP .-1 2932 33440 5461 UUOEXT 2933 2934 IFNZRO JMPTST&4177 2935 33441 0106 UKL2SA, L2SA 2936 33442 5031 UKEY0A, UKT0 2937 33443 5115 UKEY1A, UKT1 2938 2939 33444 7240 UKWAIT, STA /BACK UP HIS/HER PC 2940 33445 1104 TAD L2SV0 2941 33446 3104 DCA L2SV0 2942 33447 5217 JMP JMPTS1 /SEE IF XON SHOULD BE SENT 2943 2944 33450 0221 UKXON, 221 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 69 2945 2946 33451 4642 UKEY, JMS I UKEY0A /MAKE SURE HE'S NOT IN SI MODE 2947 33452 4643 JMS I UKEY1A /WHAT DOES HE WANT TO DO? 2948 33453 5327 JMP UKEYRS /READ STRING 2949 33454 0102 UKEYFL, JSDEL JSERR /DELIMITER FLAG OR ERROR FLAG 2950 33455 5200 C5200, JMP JMPTST /MAKE SURE HE'S NOT HANGING ON "JMP .-1" 2951 33456 7010 RAR 2952 33457 7710 SPA CLA 2953 33460 3106 DCA L2SA /KCC - CLEAR AC 2954 33461 7620 SNL CLA /IS KRB OR KRS REQUESTED? 2955 33462 5461 UUOEXT /NO - ALL DONE 2956 33463 6211 DATFLD 2957 33464 1133 TAD CONDDB 2958 33465 4507 FETCH /GET A CHARACTER FROM THE BUFFER 2959 33466 5244 JMP UKWAIT /NONE AVAILABLE 2960 33467 3273 DCA UKEYC /SAVE CHARACTER 2961 33470 1241 TAD UKL2SA /OR INTO USER'S AC 2962 33471 6201 CDF 2963 33472 4460 IOR /IT WOULD PROBABLY BE ADEQUATE TO JAM IT INTO HIS/HER AC 2964 33473 0000 UKEYC, 0 2965 33474 5461 UUOEXT /AND BACK TO USER 2966 2967 33475 0000 UKREAD, 0 2968 33476 3003 DCA WS0 /SAVE THE BREAK MASK 2969 33477 1106 TAD L2SA /POINTS TO PARAMETERS IN USER AREA 2970 33500 7001 IAC 2971 33501 3004 DCA WS1 /ADDR OF USER BUFFER POINTER 2972 33502 4150 UDF 2973 33503 1404 TAD I WS1 /USER BUFFER ADDRESS 2974 33504 3016 DCA AXS2 2975 33505 6211 UKEYR1, DATFLD 2976 33506 1133 TAD CONDDB 2977 33507 4507 FETCH /GET A CHARACTER 2978 33510 5675 JMP I UKREAD /THEY'RE FRESH OUT 2979 33511 4150 UDF /SELECT USER FIELD 2980 33512 3031 DCA TTCHAR 2981 33513 1031 TAD TTCHAR 2982 33514 3416 DCA I AXS2 2983 33515 2404 ISZ I WS1 /UPDATE USER POINTER 2984 33516 7401 MRUB, -377 /NOP 2985 33517 1003 TAD WS0 /IS IT A DELIMITER? 2986 33520 2506 ISZ I L2SA /DONE? 2987 33521 4337 JMS BRKTST 2988 33522 7610 CLA SKP /WE'RE FINISHED 2989 33523 5305 JMP UKEYR1 /BACK FOR MORE 2990 33524 3106 DCA L2SA /CLEAR AC 2991 33525 2275 ISZ UKREAD /SKIP ON RETURN 2992 33526 5675 JMP I UKREAD /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 70 2993 2994 /READ INPUT STRING 2995 2996 33527 6211 UKEYRS, DATFLD 2997 33530 7126 STL RTL 2998 33531 1133 TAD CONDDB /ADDRESS OF DDB 2999 33532 3003 DCA WS0 /POINTS TO BREAK MASK 3000 33533 1403 TAD I WS0 /GET BREAK MASK 3001 33534 4275 JMS UKREAD /READ STRING 3002 33535 5244 JMP UKWAIT /WAIT FOR HIM/HER TO TYPE SOME MORE 3003 33536 5461 UUOEXT 3004 3005 33537 0000 BRKTST, 0 3006 33540 6201 CDF 3007 33541 7550 SPA SNA 3008 33542 5360 JMP BRKTS2 3009 33543 3003 DCA WS0 /SAVE THE BREAK MASK 3010 33544 1363 TAD BRKTBA /ADDRESS OF BREAK TABLE 3011 33545 3015 DCA AXS1 3012 33546 1031 TAD TTCHAR /CHARACTER TO COMPARE WITH TABLE 3013 33547 2015 BRKTS1, ISZ AXS1 /SKIP OVER MASK 3014 33550 1415 TAD I AXS1 /-HIGH END OF RANGE 3015 33551 7100 CLL 3016 33552 1415 TAD I AXS1 /+NUMBER OF CHARACTERS IN THIS RANGE 3017 33553 7420 SNL 3018 33554 5347 JMP BRKTS1 /NOT IN THIS GROUP 3019 33555 7600 CC7600, CLA 400 /WE FOUND IT 3020 33556 1415 TAD I AXS1 /GET THE MASK 3021 33557 0003 AND WS0 /COMPARE IT WITH OUR MASK 3022 33560 7650 BRKTS2, SNA CLA /IS IT A BREAK CHARACTER? 3023 33561 2337 ISZ BRKTST /NO 3024 33562 5737 JMP I BRKTST 3025 33563 4335 BRKTBA, BRKTBL-2 3026 3027 33564 0165 MLF, 377-212 3028 33565 3353 KBD09A, KBD09 3029 3030 33566 0000 KBDLRB, 0 3031 33567 1316 TAD MRUB 3032 33570 1031 TAD TTCHAR 3033 33571 7450 SNA 3034 33572 5765 JMP I KBD09A /RUBOUT 3035 33573 1364 TAD MLF 3036 33574 7640 SZA CLA 3037 33575 5766 JMP I KBDLRB /NORMAL CHARACTER 3038 33576 5777 JMP I .+1 /LINE-FEED 3039 33577 3376 KBDSSI /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 71 3040 3041 3600 *3600 3042 3043 IFZERO CPU-2 < /TEMPORARY POWER FAIL HANDLER FOR 8/E 3044 POWINT, CLA 3045 DCA 0 /CLEAR LOCATION 0 SO WE'LL FALL THROUGH IT 3046 3047 TAD POW2 /CLOBBER LOCATION 2 (C0200) SO WE'LL COME TO "POWST" 3048 /WHEN THE JUICE RETURNS 3049 3050 DCA 2 3051 HLT /POWER FAILURE; WILL START AT POWST WHEN POWER COMES UP 3052 3053 POW2, POWST 3054 3055 POWST, DCA WS1 3056 ISZ WS0 /WE DELAY ABOUT A MINUTE TO MAKE SURE 3057 JMP .-1 /THE DISK IS UP TO SPEED 3058 ISZ WS1 3059 JMP .-3 3060 JMP I .+1 /NOW GO CALL INIT 3061 BOOT 3062 3063 USGT, SGT /SKIP ON PDP-8/E GREATER THAN FLAG (EAE) 3064 UUOEXT 3065 JMP I .+1 /CAUSE SKIP ON RETURN 3066 UUOEX2 3067 > 3068 IFNZRO CPU&7776 < 3069 UGTF, SGT /PDP-8/E "GET FLAGS" SIMULATOR 3070 SKP 3071 STL RTR /POSITION OF GT FLAG 3072 TAD L2SVLK /AND GIVE HIM/HER THE LINK 3073 DCA L2SA 3074 UUOEXT 3075 3076 URTF, CLA STL IAC RTR /AC=6000 3077 AND L2SA /SAVE ONLY LINK AND GT BITS OF HIS/HER AC 3078 RTF /RESTORE AS REQUESTED 3079 CLA RAR /FETCH NEW LINK 3080 DCA L2SVLK /SAVE FOR THE USER 3081 UUOEXT 3082 > /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 72 3083 3084 IFNZRO DC08A < 3085 0004 DC08B= DC08A+4%5 3086 33600 7774 T8FITH, -DC08B 3087 33601 2232 T8TTIA, T8TTI 3088 33602 7777 T8LC, -1 3089 33603 0000 T8SF, 0 3090 33604 0000 T8SV0, 0 3091 33605 0000 T8SVLK, 0 3092 33606 0000 T8SA, 0 3093 33607 0000 T8FLG, 0 3094 33610 7777 T8CNT0, -1 /SO IT WILL INITIALIZE ITSELF THE FIRST TIME IT'S USED 3095 33611 0000 T8CNT1, 0 3096 33612 0000 T8CNT2, 0 3097 33613 7773 T8N5, -5 3098 33614 0250 T8OBA, SKPTBL+PT08+KL8+2 3099 33615 0000 T8OBF, 0 3100 33616 7755 T8NLN, -DC08A 3101 33617 7530 T8LINE, DC08LO-SKPTBL-PT08-KL8-2 3102 33620 0345 RESTA, RESTOR 3103 33621 3603 T8SFA, T8SF 3104 33622 7741 T8BF2, OUTREG-SKPTBL-1 3105 33623 0000 T8TMP, 0 3106 33624 3000 T83000, 3000 3107 33625 7566 TTOFLD, TTOFLG 3108 33626 0274 T8RTN, DISMI2 3109 33627 6424 T8DIS, T1ON /RE-ENABLE THE CLOCK 3110 33630 2202 ISZ T8LC 3111 33631 5626 JMP I T8RTN /ALREADY SERVICING DC08 3112 33632 3206 DCA T8SA /SAVE AC 3113 33633 7010 RAR 3114 33634 3205 DCA T8SVLK /AND LINK 3115 33635 1000 TAD 0 3116 33636 3204 DCA T8SV0 /AND PC 3117 33637 6234 RIB 3118 33640 3203 DCA T8SF /FIELD & MODE 3119 33641 3207 DCA T8FLG /CLEAR DC08A LEVEL 2 SERVICE FLAG 3120 33642 1200 T8IN, TAD T8FITH 3121 33643 6473 TTCR TTLR /LIMIT INPUT TO 1/5 OF THE LINES 3122 33644 3212 DCA T8CNT2 /SAVE ALSO AS THE OUTPUT LINE COUNT 3123 33645 6001 ION 3124 33646 6213 CIF DATFLD 3125 33647 5601 JMP I T8TTIA /TAKE A PASS THROUGH THE TTI STRING /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 73 3126 3127 /RETURNS HERE AFTER SERVICING INPUT SIDE (TTI'S) 3128 33650 2210 T8OUT1, ISZ T8CNT0 /BUMP DIVIDE BY 5 COUNTER 3129 33651 5260 JMP T8OUT2 /CONTINUE CURRENT PASS 3130 33652 1213 TAD T8N5 3131 33653 3210 DCA T8CNT0 /RESET MAJOR COUNTER 3132 33654 1214 TAD T8OBA 3133 33655 3215 DCA T8OBF /RESET OUTPUT BUFFER POINTER 3134 33656 1216 TAD T8NLN 3135 33657 3211 DCA T8CNT1 /RESET TOTAL NUMBER OF LINES COUNTER 3136 33660 1211 T8OUT2, TAD T8CNT1 3137 33661 7700 SMA CLA /ANYTHING LEFT THIS PASS? 3138 33662 5301 JMP T8EXT /NO 3139 33663 1217 TAD T8LINE /LINE NUMBER TO START AT 3140 33664 1215 TAD T8OBF /COMPUTED FROM CURRENT BUFFER POSITION 3141 33665 6413 TTCL TTLL /LOAD IT INTO THE DC08A 3142 33666 7200 CLA 3143 33667 1615 T8OUT3, TAD I T8OBF /BITS TO BE OUTPUT 3144 33670 7440 SZA 3145 33671 5333 JMP T8OUT5 /MUST BE SOMETHING THERE 3146 33672 6401 TTIL /NOTHING - JUST BUMP THE LINE NUMBER 3147 33673 2215 T8OUT4, ISZ T8OBF /BUMP THE BUFFER POINTER 3148 33674 2211 ISZ T8CNT1 /AND THE TOTAL LINE COUNT 3149 33675 7410 SKP 3150 33676 5301 JMP T8EXT /FINISHED 3151 33677 2212 ISZ T8CNT2 /CURRENT PASS COCUNT 3152 33700 5267 JMP T8OUT3 /ONTO THE NEXT LINE 3153 33701 6002 T8EXT, IOF 3154 33702 7360 STL STA /DECREMENT THE INTERRUPT COUNT 3155 33703 1202 TAD T8LC 3156 33704 3202 DCA T8LC 3157 33705 7420 SNL /ALL ACCOUNTED FOR? 3158 33706 5242 JMP T8IN /NO - MAKE ANOTHER ROUND 3159 33707 1207 TAD T8FLG /DOES THE DC08 REQUIRE LEVEL 2 3160 33710 1013 TAD L2Q /OR SOMETHING ELSE? 3161 33711 7041 CIA 3162 33712 1014 TAD L2QE 3163 33713 0203 AND T8SF /ALLOW "L2EXIT" ONLY IF FROM USER MODE 3164 33714 0037 AND C0100 3165 33715 7640 SZA CLA /HOW SHOULD WE EXIT? 3166 33716 5322 JMP T8EXIT /VIA L2EXIT 3167 33717 1221 TAD T8SFA /BACK TO WHERE WE CAME FROM 3168 33720 6201 CDF 3169 33721 5620 JMP I RESTA /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 74 3170 3171 /MOVE THE ACTIVE REGISTERS OVER TO LEVEL 2 3172 33722 1205 T8EXIT, TAD T8SVLK /THE LINK 3173 33723 3105 DCA L2SVLK 3174 33724 1206 TAD T8SA /THE AC 3175 33725 3106 DCA L2SA 3176 33726 1204 TAD T8SV0 /THE PC 3177 33727 3104 DCA L2SV0 3178 33730 1203 TAD T8SF /FIELDS & MODE 3179 33731 3103 DCA L2SF 3180 33732 5467 EXIT 3181 33733 6405 T8OUT5, TTO TTIL /OUTPUT A BIT 3182 33734 7440 SZA 3183 33735 5363 JMP T8OUT8 /SAVE THE REMAINING BITS FOR NEXT TIME 3184 33736 1215 T8OUT6, TAD T8OBF /OUR POSITION 3185 33737 1222 TAD T8BF2 /MINUS THE OFFSET 3186 33740 3223 DCA T8TMP /SECOND BUFFER 3187 33741 1623 TAD I T8TMP 3188 33742 7010 RAR 3189 33743 7420 SNL /ANYTHING WAITING? 3190 33744 5360 JMP T8OUT7 /NO 3191 33745 0140 AND C0377 3192 33746 7104 CLL RAL 3193 33747 1224 TAD T83000 /NOW THE STOP BITS & START BIT ARE IN PLACE 3194 33750 3615 DCA I T8OBF /SAVE IT TO BE OUTPUT NEXT TIME 3195 33751 7133 STL IAC RTR 3196 33752 3623 DCA I T8TMP /SET BOTH HARDWARE BUSY AND SERVICE FLAGS 3197 33753 6201 CDF 3198 33754 3625 DCA I TTOFLD /SET "CONOUT" FLAG 3199 33755 6211 DATFLD 3200 33756 2207 ISZ T8FLG /SCHEDULE LEVEL 2 FOR US 3201 33757 5273 JMP T8OUT4 3202 33760 7330 T8OUT7, STL CLA RAR 3203 33761 0623 AND I T8TMP 3204 33762 3623 DCA I T8TMP /CLEAR EVERYTHING EXCEPT SERVICE FLAG 3205 33763 3615 T8OUT8, DCA I T8OBF 3206 33764 5273 JMP T8OUT4 3207 3208 33765 0000 T8IN1, 0 3209 33766 6002 IOF 3210 33767 3411 DCA I ACX11 /STASH IT IN THE RING BUFFER 3211 33770 6414 TTRL 3212 33771 1376 TAD T8BASE /MAKE DC08A LINE NUMBER = KXX 3213 33772 4777 JMS I T8INPA /FINISH HOUSE-CLEANING 3214 33773 2207 ISZ T8FLG /SCHEDULE LEVEL 2 3215 33774 6213 CIF DATFLD 3216 33775 5765 JMP I T8IN1 /BACK TO FIELD 1 3217 33776 0011 T8BASE, PT08+KL8-DC08LO+1 3218 33777 7553 T8INPA, ACINT9 3219 >/END OF FIELD 0 DC08A CODE /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 75 3220 3221 4000 *4000 3222 3223 / THIS WILL RUN A "ROUND ROBIN" OF CORE RESIDENT JOBS 3224 3225 34000 3112 NXTCO1, DCA SCHNEW /ANY JOB STARTED FROM HERE MAY BE THROWN OFF 3226 34001 2272 NXTCOR, ISZ NXTCNT /HAVE WE CHECK ALL ENTRIES? 3227 34002 1272 TAD NXTCNT 3228 34003 7740 SMA SZA CLA 3229 34004 5651 JMP I NXTNUL /YES; NOTHING RUNNABLE EXCEPT NULL JOB 3230 34005 2253 NXTCO2, ISZ NXTCOP /BUMP CORTBL POINTER 3231 34006 1253 TAD NXTCOP /ARE WE PAST THE END OF THE TABLE? 3232 34007 1654 TAD I NXTEND 3233 34010 7640 SZA CLA /? 3234 34011 5214 JMP .+3 /NOT YET 3235 34012 1042 TAD FANCOR /YES, START AT THE BEGINNING AGAIN 3236 34013 3253 DCA NXTCOP /ALL SET 3237 34014 1653 TAD I NXTCOP /GET CORTBL ENTRY 3238 34015 7450 SNA /IS THERE ANYTHING IN THERE? 3239 34016 5247 JMP NXTCO4 /NO; CLEAR DEAD JOB POINTER (A FREE FIELD IS BETTER) 3240 34017 0256 AND C6600 /IS IT BEING SWAPPED, LOCKED, OR A PHANTOM? 3241 34020 7640 SZA CLA 3242 34021 5201 JMP NXTCOR /YES - SO IT'S NOT A USEFULL FIELD NOW 3243 34022 1653 TAD I NXTCOP 3244 34023 0036 AND C0037 3245 34024 4501 RUNABL 3246 34025 5241 JMP NXTCO3 /NOT RUNNABLE 3247 34026 1653 TAD I NXTCOP /TRY TO RUN THIS ONE 3248 34027 0036 AND C0037 /GET JOBTBL INDEX 3249 34030 1044 TAD JOBTBA /GET POINTER TO JOB DATA 3250 34031 4477 GETJTI /GET VALUE OF STR0 3251 34032 0000 JOBSTS 3252 34033 0255 AND C0107 /DOES HE WANT TO RUN FIP OR SI FOR ERROR? 3253 34034 7640 SZA CLA 3254 34035 5201 JMP NXTCOR /HAVE TO WAIT 'TIL LATER 3255 34036 1653 TAD I NXTCOP 3256 34037 5640 JMP I .+1 /GO RUN THIS ONE 3257 34040 2520 SCHEI2 3258 34041 7240 NXTCO3, STA 3259 34042 1253 TAD NXTCOP /POINTER-1 OF DEAD JOB 3260 34043 3111 DCA DEAD /SAVE IT 3261 34044 1253 TAD NXTCOP 3262 34045 1040 TAD NXTFLD /FIELD INDEX ONLY 3263 34046 4652 JMS I NXTDSK /IS THERE DISK ACTIVITY IN THIS FIELD? 3264 34047 3111 NXTCO4, DCA DEAD /YES; SO HE'S NOT REALLY DEAD-WOOD THEN 3265 34050 5201 JMP NXTCOR /KEEPLOOKING 3266 34051 6667 NXTNUL, SCHNUL 3267 0040 NXTFLD= C1000 /-CORTBL+1 3268 34052 1736 NXTDSK, DSKACT 3269 34053 7002 NXTCOP, CORTBL+1 /ROUND ROBIN CORTBL POINTER 3270 34054 1316 NXTEND, CORTBE /END OR CORTBL 3271 34055 0107 C0107, 107 3272 34056 6600 C6600, SWAP+LOCK+FIP+SI /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 76 3273 3274 34057 0106 UHALSA, L2SA 3275 34060 1003 UHALT, TAD UUOCAL /IS IT AN OSR? 3276 34061 0034 AND C0004 3277 34062 7650 SNA CLA /OSR? 3278 34063 5273 JMP UHALT1 /NO 3279 34064 6201 CDF 3280 34065 4476 GETJTW /YES, GET CURRENT VALUE OF SWITCHES 3281 34066 0010 JOBSWR 3282 34067 3272 DCA UHALT2 /OR IT INTO AC 3283 34070 1257 TAD UHALSA /WHICH IS RIDICULOUS, SINCE OSR 3284 34071 4460 IOR /IS UNIVERSALLY CODED AS LAS, AND 3285 NXTCNT, 3286 34072 0000 UHALT2, 0 /A SIMPLE "DCA L2SA" WOULD DO 3287 34073 1003 UHALT1, TAD UUOCAL /NOW SEE IF IT WAS MICROCODED 3288 34074 0032 AND C0002 /HALT? 3289 34075 7650 SNA CLA 3290 34076 5461 UUOEXT 3291 34077 4752 JMS I USBCSI /LOCATE HIS/HER DDB AND SEE IF HE'S IN SI MODE 3292 34100 1047 TAD FRECNT /USER HAS EXECUTED HLT 3293 34101 1041 TAD C7770 3294 34102 7750 SPA SNA CLA /IF WE'RE SHORT ON FREE CORE, TRY LATER 3295 34103 5470 REDO 3296 34104 4476 GETJTW /CLEAR HIS/HER RUN BIT 3297 34105 0000 JOBSTS 3298 34106 0143 AND C3777 /CLEAR JSRUN 3299 34107 6211 DATFLD 3300 34110 3405 DCA I JOBSWA 3301 34111 1132 TAD CONDBA /CONDBA WAS SET UP BY THE JMS TO UKT0 3302 34112 4314 JMS UHLTMS /NOW TYPE ^BS FOR HIM/HER 3303 34113 5577 WAIT 3304 3305 34114 0000 UHLTMS, 0 3306 34115 3327 DCA UHLTM1 /SET DEVTBL POINTER 3307 34116 6214 RDF 3308 34117 1335 TAD UHMES /EITHER TYPE ^BS OR ^BS;K 3309 34120 3016 DCA AXS2 3310 34121 6201 CDF 3311 34122 1416 UHLTM0, TAD I AXS2 /GET A CHARACTER 3312 34123 7550 SPA SNA 3313 34124 5332 JMP UHLTM2 /END OF TEXT 3314 34125 3031 DCA TTCHAR /SAVE IT 3315 34126 4471 KEY /RUN IT INTO HIS/HER INPUT BUFFER 3316 34127 0000 UHLTM1, .-. 3317 34130 7000 NOP 3318 34131 5322 JMP UHLTM0 /GET ANOTHER ONE 3319 34132 7640 UHLTM2, SZA CLA /WHERE DID WE COME FROM? 3320 34133 6213 CIF DATFLD /BACK TO 689 SERVICE 3321 34134 5714 JMP I UHLTMS 3322 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 77 3323 3324 34135 4135 UHMES, . 3325 34136 0202 "B-100 3326 34137 0323 "S 3327 34140 0273 "; 3328 34141 0313 "K 3329 34142 0215 215 3330 34143 7377 C7377, 7377 3331 34144 6642 USBCLR, CLRBUF 3332 34145 1562 USBFLG, CLSTR1 3333 34146 0202 "B-100 3334 34147 0323 "S 3335 34150 0213 213 3336 34151 0000 0 3337 34152 5031 USBCSI, UKT0 3338 3339 /SELECTIVE BUFFER CLEAR 3340 34153 4752 USBC, JMS I USBCSI /CHECK FOR SI MODE 3341 34154 6211 DATFLD 3342 34155 1106 TAD L2SA 3343 34156 7104 CLL RAL 3344 34157 7700 SMA CLA /CLEAR INPUT BUFFER? 3345 34160 5370 JMP USBC3 /NO 3346 34161 1133 TAD CONDDB /INPUT DDB ADDRESS 3347 34162 4744 JMS I USBCLR /CLEAR INPUT BUFFER 3348 34163 1037 TAD C0100 3349 34164 4745 JMS I USBFLG /CLEAR FLAG 3350 34165 1533 TAD I CONDDB 3351 34166 0343 AND C7377 /CLEAR FULL BIT 3352 34167 3533 DCA I CONDDB 3353 34170 1106 USBC3, TAD L2SA /WHAT IS REQUESTED? 3354 34171 7700 SMA CLA /CLEAR OUTPUT BUFFER? 3355 34172 5376 JMP USBC4 /NO 3356 34173 2132 ISZ CONDBA /POINT TO OUTPUT SIDE 3357 34174 1532 TAD I CONDBA 3358 34175 4744 JMS I USBCLR /CLEAR OUTPUT BUFFER 3359 34176 3106 USBC4, DCA L2SA /CLEAR HIS/HER AC 3360 34177 5461 UUOEXT 3361 3362 3363 3364 3365 3366 3367 3368 4200 *4200 3369 3370 /STANDARD BOOTSTRAP AND RESTART ADDRESSES 3371 3372 34200 5602 JMP I .+2 /INIT BOOTSTRAP 3373 34201 5603 JMP I .+2 /RESTART ADDRESS 3374 34202 3053 BOOT 3375 34203 3154 DEBUG /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 78 3376 3377 34204 0000 FILERC, 0 /ROUTINE TO RECOVER FROM DISK ERRORS 3378 34205 0000 FILUSA, 0 /AND SET ERROR CODES FOR USER 3379 34206 0000 FILEWC, 0 /ERROR CODES ARE: 3380 0150 FILER1= WS2 / 1 PARITY 3381 / 2 END OF FILE 3382 / 3 FILE NOT OPEN 3383 / 4 PROTECTION VIOLATION 3384 34207 7577 FJSF3, -JSF3-1 3385 0034 FILECA= C0004 /FILPCA 3386 0035 FILECT= C0007 /FILPCT 3387 0032 FILEIF= C0002 /FILPIF 3388 34210 6000 C6000, 6000 3389 34211 0000 FILERR, 0 3390 34212 3204 DCA FILERC /ERROR CODE 3391 34213 7344 CLL CLA CMA RAL /AC:=-2 3392 34214 1204 TAD FILERC /ERROR CODE - .GT.2? 3393 34215 7750 SPA SNA CLA /PROTECTED OR NOT OPEN? 3394 34216 5234 JMP FILER2 /NO 3395 34217 4476 GETJTW /GET ADDRESS OF PARAMETER BLOCK 3396 34220 0007 JOBLNK 3397 34221 4576 RETBLK /RETURN IT TO FREE CORE 3398 34222 7200 CLA 3399 34223 1106 TAD L2SA /GET POINTER TO PARAMETERS IN USER AREA 3400 34224 1266 TAD F0005 3401 34225 3211 DCA FILERR /POINTS TO SIXTH USER PARAMETER (ERROR CODE) 3402 34226 1204 TAD FILERC /GET ERROR 3403 34227 4150 UDF /SELECT USER FIELD 3404 34230 3611 DCA I FILERR /PASS ERROR TO USER 3405 34231 6201 CDF 3406 34232 3106 DCA L2SA /CLEAR HIS/HER AC 3407 34233 5461 UUOEXT /AND BACK TO HIM/HER 3408 3409 34234 1611 FILER2, TAD I FILERR /END OF FILE OR PARITY ERROR... 3410 34235 1032 TAD FILEIF /GET ADDRESS OF FILE PARAMETER BLOCK 3411 34236 3324 DCA FILER5 /POINTS TO WORD 3 OF BLOCK 3412 34237 6211 DATFLD 3413 34240 1724 TAD I FILER5 /WAS FILE CALL ORIGINATED BY SI? 3414 34241 0210 AND C6000 /BITS 0-1 WILL BE SET IF SO... 3415 34242 7650 SNA CLA 3416 34243 5272 JMP FILER4 /NO - IT CAME FROM USER PROGRAM 3417 34244 1724 TAD I FILER5 /YES - GET FIELD # FOR TRANSFER 3418 34245 7012 RTR 3419 34246 0035 AND C0007 /MASK OUT FILE # BITS 3420 34247 1162 TAD CORTBA /INDEX INTO CORTBL 3421 34250 3205 DCA FILUSA /SAVE POINTER TO CORTBL ENTRY FOR THIS TRANSFER 3422 34251 6201 CDF 3423 34252 1605 TAD I FILUSA /GET CORTBL ENTRY 3424 34253 0036 AND C0037 /EXTRACT JOB # 3425 34254 3205 DCA FILUSA /SAVE JOB # 3426 34255 7144 CLL CMA RAL /AC=-2 3427 34256 1204 TAD FILERC /IS IT AN END OF FILE? 3428 34257 7650 SNA CLA 3429 34260 5267 JMP FILER3 /YES; WE'RE ALMOST DONE THEN 3430 34261 1204 TAD FILERC /NO - WAS THERE ANY ERROR AT ALL? 3431 34262 7650 SNA CLA 3432 34263 5267 JMP FILER3 /NO /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 79 3433 34264 1205 TAD FILUSA /PARITY ERROR - SET SYSTEM ERROR CODE IN STR0 3434 34265 4463 ERROR 3435 34266 0005 F0005, DSKERR 3436 34267 2211 FILER3, ISZ FILERR /INDEX PAST CALLING ARGUMENT 3437 34270 6201 CDF 3438 34271 5611 JMP I FILERR /AND BACK 3439 3440 3441 3442 34272 1724 FILER4, TAD I FILER5 /UPDATE USER CONTROL TO INDICATE ERROR CODE 3443 34273 7004 RAL /SHIFT FIELD # INTO BITS 6-8 3444 34274 0137 AND C0070 /SAVE IT 3445 34275 1335 TAD FILCDF /GENERATE "UDF" 3446 34276 3324 DCA FILER5 /USER FIELD SELECT 3447 34277 6201 CDF 3448 34300 1611 TAD I FILERR /PARAMETER BLOCK ADDRESS 3449 34301 3206 DCA FILEWC /SAVE IT 3450 34302 1206 TAD FILEWC 3451 34303 6211 DATFLD 3452 34304 1034 TAD FILECA 3453 34305 3150 DCA FILER1 /POINTS TO CORE ADDRESS IN PARAMETER BLOCK 3454 34306 1550 TAD I FILER1 /GET CORE ADDRESS 3455 34307 3150 DCA FILER1 /SAVE IT 3456 34310 1206 TAD FILEWC /START OF PARAMETERS 3457 34311 1035 TAD FILECT /+7 3458 34312 3205 DCA FILUSA /POINTS TO PTR TO FILE CONTROL 3459 34313 1605 TAD I FILUSA /GET ADDRESS OF FILE CONTROL 3460 34314 1136 TAD C0006 /POINTS TO WORD COUNT IN FILE CONTROL 3461 34315 3206 DCA FILEWC /SAVE IT 3462 34316 1206 TAD FILEWC 3463 34317 7001 IAC 3464 34320 3205 DCA FILUSA /POINTS TO POINTER TO USER PARAMETERS 3465 34321 1605 TAD I FILUSA /GET POINTER TO USER ARGUMENTS 3466 34322 3205 DCA FILUSA /SAVE 3467 34323 1606 TAD I FILEWC /GET WORD COUNT TO GO FROM CONTROL BLOCK 3468 34324 0000 FILER5, 0 /SELECT USER FIELD 3469 34325 3605 DCA I FILUSA /SAVE IN USER AREA 3470 34326 2205 ISZ FILUSA /POINTS TO WORD 4 OF USER ARGUMENTS 3471 34327 1150 TAD FILER1 /GET LATEST CORE XFER ADDRESS 3472 34330 3605 DCA I FILUSA /SAVE FOR USER 3473 34331 2205 ISZ FILUSA 3474 34332 2205 ISZ FILUSA /POINTS TO WORD 6 (ERROR WORD) 3475 34333 1204 TAD FILERC /GET ERROR CODE 3476 34334 3605 DCA I FILUSA /PASS ON TO USER 3477 34335 6201 FILCDF, CDF 3478 34336 5267 JMP FILER3 /AND BACK /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 80 3479 3480 34337 7445 BRKTBL, -"Z-1 /LETTERS 3481 34340 0032 "Z-"A+1 3482 34341 2000 2000 3483 3484 34342 0007 "A-"9-1 /NUMBERS 3485 34343 0012 "9-"0+1 3486 34344 1000 1000 3487 3488 34345 0046 "0-211-1 /HORIZONTAL TAB 3489 34346 0001 211-211+1 3490 34347 0400 0400 3491 3492 34350 7773 211-215-1 /LF, VT, FF, CR 3493 34351 0004 215-212+1 3494 34352 0200 0200 3495 3496 34353 7716 212-";-1 /! @ # DOLLAR % & ' ( ) * + , - . / : ; 3497 34354 0033 ";-"!+1 3498 34355 0100 0100 3499 3500 34356 0000 "!-240-1 /SPACE 3501 34357 0001 240-240+1 3502 34360 0040 0040 3503 3504 34361 7737 240-"@-1 /< = > ? @ 3505 34362 0005 "@-"<+1 3506 34363 0020 0020 3507 3508 34364 7734 "<-"_-1 /[ \ ] _ 3509 34365 0005 "_-"[+1 3510 34366 0010 0010 3511 3512 34367 7733 "[-377-1 /RUBOUT 3513 34370 0001 377-377+1 3514 34371 0004 0004 3515 3516 34372 0000 377-376-1 /ALTMODE 3517 34373 0002 376-375+1 3518 34374 0002 0002 3519 3520 34375 7775 375-377-1 /EVERYTHING ELSE 3521 34376 0400 377-0+1 3522 34377 0001 0001 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 81 3523 3524 4400 *4400 3525 3526 /RFILE AND WFILE IOTS 3527 3528 34400 1352 UFILE, TAD UFILWA /NO, GET USER PARAMETERS 3529 34401 4754 JMS I UFPARM /AND MOVE TO PARAMETER BLOCK 3530 34402 1755 TAD I UFLNKA /ADDRESS OF PARAMETER BLOCK 3531 34403 1032 TAD UFIPIF 3532 34404 3003 DCA UFPARA /POINTS TO WORD 3 OF BLBOCK 3533 34405 6211 DATFLD 3534 34406 1403 TAD I UFPARA /CLEAR ALL BUT FILE # IN BLOCK 3535 34407 0033 AND C0003 3536 34410 3403 DCA I UFPARA /SAVE IT 3537 34411 1106 TAD L2SA /ADDRESS OF USER PARAMETERS 3538 34412 1032 TAD UFIPWC /+2 3539 34413 3341 DCA UFILE1 /POINTS TO WORD COUNT IN USER AREA 3540 34414 1403 TAD I UFPARA /FILE # 3541 34415 6201 SIFIL1, CDF 3542 34416 1353 TAD UFJF0 /RELATIVE ADDRESS OF FILE 0 POINTER 3543 34417 3221 DCA UFJOBF /RELATIVE ADDR OF FILE POINTER FOR THIS FILE 3544 34420 4476 GETJTW 3545 34421 0000 UFJOBF, 0 /POINTER TO FILE CONTROL INFO 3546 34422 7450 SNA 3547 34423 5335 JMP UFILER+1 /FILE NOT OPEN 3548 34424 3221 DCA UFJOBF /SAVE POINTER TO FILE CONTROL 3549 34425 6211 DATFLD 3550 34426 1403 TAD I UFPARA /FILE # 3551 34427 4762 JMS I UFIGJF /GENERATE CORRESPONDING FILE BIT IN STR1 3552 34430 3004 DCA UFIJSF /FILE STATUS FLAG 3553 34431 1103 TAD L2SF /USER'S FIELD # 3554 34432 0035 AND C0007 3555 34433 7106 CLL RTL /*4 3556 34434 3005 DCA JOBSWA /SAVE 3557 34435 1403 TAD I UFPARA /GET FILE # + ORIGINATING STATUS INFO 3558 34436 0351 AND C7743 /CLEAR FIELD # 3559 34437 1005 TAD JOBSWA /SET FIELD # 3560 34440 3403 DCA I UFPARA /SAVE IN PARAMETERS 3561 34441 1221 TAD UFJOBF /SAVE GLOBAL PARAMETERS 3562 34442 7001 IAC /POINTS TO WORD 2 OF CONTROL BLOCK 3563 34443 3015 DCA AXS1 /CONTROL INDEX 3564 34444 7346 CLL CLA CMA RTL /AC:=-3 3565 34445 1003 TAD UFPARA 3566 34446 3016 DCA AXS2 /PARAMETER INDEX POINTS TO START OF PARAMETERS-1 3567 34447 1416 TAD I AXS2 /WRITE AND PROTECTED? 3568 34450 0415 AND I AXS1 3569 34451 0034 AND C0004 /CHECK ONLY FOR WRITE PROTECT 3570 34452 7640 SZA CLA 3571 34453 5334 JMP UFILER /YES - ERROR 3572 34454 1016 TAD AXS2 /NO, SET FILPAR = START OF PARAMETER BLOCK 3573 34455 3415 DCA I AXS1 3574 34456 1416 TAD I AXS2 /DISC EXTENSION FROM PARAMETERS 3575 34457 3415 DCA I AXS1 /TO CONTROL BLOCK 3576 34460 2016 ISZ AXS2 /SKIP FIELD 3577 34461 1416 TAD I AXS2 /SAVE WC 3578 34462 3005 DCA JOBSWA 3579 34463 2016 ISZ AXS2 /SKIP CORE ADDRESS FOR NOW /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 82 3580 34464 1416 TAD I AXS2 /DISC ADDRESS 3581 34465 3415 DCA I AXS1 /TO CONTROL BLOCK 3582 34466 1360 TAD UFIRET /RETURN ADDRESS 3583 34467 3416 DCA I AXS2 /TO PARAMETER BLOCK 3584 34470 1221 TAD UFJOBF /POINTER TO FILE CONTROL 3585 34471 3416 DCA I AXS2 /TO PARAMETER BLOCK 3586 34472 1005 TAD JOBSWA /WORD COUNT 3587 34473 3415 DCA I AXS1 /TO CONTROL BLOCK 3588 34474 1341 TAD UFILE1 /POINTS TO WC IN USER AREA 3589 34475 7450 SNA /IS THIS AN SI REQUEST? 3590 34476 5301 JMP .+3 /YES 3591 34477 3415 DCA I AXS1 /NO, SAVE POINTER TO WC IN CONTROL BLOCK 3592 34500 3106 DCA L2SA /CLEAR USER AC 3593 34501 1221 TAD UFJOBF /POINTER TO CONTROL BLOCK 3594 34502 1033 TAD UFPAR2 /+3 3595 34503 3311 DCA UFILPA /POINTS TO POINTER IN CONTROL BLOCK POINTING TO PARAM. BLOCK 3596 34504 1221 TAD UFJOBF /POINTS TO FILE CONTROL 3597 34505 4757 JMS I UFILIX /GET SEGMENT INDEX 3598 34506 5764 JMP I UFIL4A /NOT IN CORE - DO A WINDOW TURN 3599 34507 5330 JMP UFILE2 /NON-EXISTENT DISC ADDRESS 3600 34510 4761 JMS I UFICTB /OK, SET UP TRANSFER BLOCK - POINTER TO SEGMENT # IN AC 3601 34511 0000 UFILPA, 0 /POINTER TO FILPAR 3602 34512 1711 TAD I UFILPA /ADDRESS OF PARAMETERS 3603 34513 4763 JMS I UFIQUE /QUEUE THE REQUEST IN DSUTBL 3604 34514 2165 ISZ DSBUSY /DISC BUSY? 3605 34515 7410 SKP /YES 3606 34516 4462 JMS I FIUSER /NO, START TRANSFER 3607 34517 1004 TAD UFIJSF /CLEAR FILE STATUS BIT 3608 34520 5461 UUOEXT /EXIT 3609 3610 34521 6211 SIFILE, DATFLD /HANDLE SI FILE TRANSFERS 3611 34522 1032 TAD UFIPIF 3612 34523 3003 DCA UFPARA /POINTS TO FILE # IN PARAMETERS 3613 34524 3341 DCA UFILE1 3614 34525 1403 TAD I UFPARA /GET FILE # 3615 34526 0033 AND C0003 /ONLY FILE # 3616 34527 5215 JMP SIFIL1 /REST IS SAME AS USER PROGRAMS /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 83 3617 3618 34530 4476 UFILE2, GETJTW /NON-EXISTENT DISK ADDRESS 3619 34531 0007 JOBLNK /GET ADDRESS OF PARAMETERS 3620 34532 3341 DCA UFILE1 /SAVE IT 3621 34533 5336 JMP .+3 3622 34534 7001 UFILER, IAC /PROTECTED 3623 34535 7001 IAC /NOT OPEN 3624 34536 1032 TAD C0002 /EOF 3625 34537 6201 CDF 3626 34540 4756 JMS I UFERR /FILE ERROR ROUTINE 3627 34541 0000 UFILE1, 0 /POINTS TO PARAMETER BLOCK 3628 34542 1341 TAD UFILE1 3629 34543 4576 RETBLK /RETURN PARA BLK 3630 34544 7200 CLA 3631 34545 1147 TAD CURJOB /DID WE BUMP SOMEONE ELSE OFF? 3632 34546 7640 SZA CLA 3633 34547 5577 WAIT /YES - GO BACK TO HIM/HER 3634 34550 5461 UUOEXT /NO - BACK TO THIS USER 3635 3636 0003 UFPARA= WS0 /ADDR OF USER PARAMETERS 3637 0004 UFIJSF= WS1 /FILE STATUS FLAG 3638 34551 7743 C7743, 7743 3639 34552 7176 UFILWA, UFILCT 3640 34553 0017 UFJF0, JOBF0 3641 0033 UFPAR2= C0003 /FILPAR 3642 0032 UFIPIF= C0002 /FILPIF 3643 0032 UFIPWC= C0002 /FILPWC 3644 3645 34554 2305 UFPARM, GETUSP 3646 34555 2345 UFLNKA, UUOLNK 3647 34556 4211 UFERR, FILERR 3648 34557 5201 UFILIX, FILIX 3649 34560 5400 UFIRET, DSURET 3650 34561 4631 UFICTB, FILCTB 3651 34562 5600 UFIGJF, GETJFX 3652 34563 6714 UFIQUE, DSQUE 3653 34564 2254 UFIL4A, UFILE4 3654 3655 34565 6212 RKL20, CIF DATFLD-1 3656 34566 5767 JMP I .+1 3657 34567 1623 RKL21 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 84 3658 3659 /RETURN CONTENT OF JOB STATUS FOR CURRENT JOB 3660 /CALL 3661 / GETJTW 3662 / RELATIVE ADDRESS OF WORD 3663 / RETURN (CONTENTS IN AC, ABSOLUTE ADD IN JOBSWA) 3664 3665 34570 0000 GETJW0, 0 3666 34571 1770 TAD I GETJW0 /GET RELATIVE ADDRESS 3667 34572 3375 DCA .+3 /SAVE IT 3668 34573 1161 TAD CJOBDA /POINTER TO CURRENT JOB STATUS 3669 34574 4477 GETJTI /GETCONTENTS 3670 34575 0000 0 3671 34576 2370 ISZ GETJW0 /INDEX RETURN 3672 34577 5770 JMP I GETJW0 3673 3674 3675 3676 4600 *4600 3677 3678 /RETURN NUMBER OF NEXT RUNNABLE JOB IN AC 3679 /CALL JMS NXTJOB 3680 / RETURN WITH JOB # IN AC 3681 3682 FILCDA, 3683 34600 0000 NXTJCT, 0 3684 34601 0000 NXTJBN, 0 /NEXT JOB # 3685 34602 7754 NXTJMM, -JOBMAX 3686 3687 FILCT2, 3688 34603 0000 NXTJOB, 0 3689 34604 3055 DCA FIT /CLEAR FIT 3690 34605 1057 TAD BONUS /IS THERE ANY JOB BROKEN OUT OF KEYBOARD WAIT? 3691 34606 4501 RUNABL /IS IT RUNNABLE? 3692 34607 5212 JMP NXTJ1 /NO, GET THE NEXT JOB 3693 34610 1057 TAD BONUS /THIS JOB 3694 34611 5603 JMP I NXTJOB 3695 34612 2200 NXTJ1, ISZ NXTJCT /HAVE WE TRIED ALL JOBS? 3696 34613 7410 SKP /NO, KEEP GOING 3697 34614 5465 SCHED /TRY FOR A RESIDENT JOB 3698 34615 1201 TAD NXTJBN /IS IT TIME TO WRAP AROUND TO JOB 1? 3699 34616 1202 TAD NXTJMM 3700 34617 7650 SNA CLA 3701 34620 3201 DCA NXTJBN /YES 3702 34621 2201 ISZ NXTJBN /INCREMENT NUMBER OF JOB UNDER CONSIDERATION 3703 34622 1201 NXTJ2, TAD NXTJBN /IS THE JOB RUNNABLE? 3704 34623 4501 RUNABL 3705 34624 5212 JMP NXTJ1 /NO, CONTINUE JOB TABLE ROUND ROBIN 3706 34625 1201 TAD NXTJBN /YES, RETURN WITH JOB NO. IN AC 3707 34626 5603 JMP I NXTJOB /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 85 3708 3709 /CONSTRUCT TRANSFER BLOCK 3710 /CALL TAD SEGMENT WINDOW POINTER 3711 / JMS FILCTB 3712 / POINTER TO FILPAR 3713 3714 0034 FILCPD= C0004 /FILPDA-FILPDX 3715 0145 FILCWC= C7776 /FILPWC-FILPDA 3716 0005 FILCSW= JOBSWA /POINTER TO SEGMENT WINDOW 3717 0150 FILCPA= WS2 /POINTER TO FILPAR & FILDA 3718 34627 0000 FILCWA, 0 3719 34630 0000 FILCPX, 0 /POINTER TO FILPDX, FILPDA & FILPWC 3720 3721 34631 0000 FILCTB, 0 3722 34632 3005 DCA FILCSW /SAVE POINTER TO SEGMENT IN WINDOW 3723 34633 1631 TAD I FILCTB 3724 34634 3150 DCA FILCPA /ADDRESS OF POINTER TO PARAMETER BLOCK 3725 34635 2231 ISZ FILCTB /SKIP ARGUMENT IN CALL 3726 34636 6211 DATFLD 3727 34637 1550 TAD I FILCPA /GET ADDRESS OF PARAMETERS 3728 34640 7001 IAC /POINTS TO WORD 2 OF PARAMETERS 3729 34641 3230 DCA FILCPX 3730 34642 2150 ISZ FILCPA /POINTS TO DISK EXTENSION IN CONTROL BLOCK 3731 34643 7240 CLA CMA 3732 34644 1405 TAD I FILCSW /GET SEGMENT # 3733 34645 7110 CLL RAR 3734 34646 7012 RTR 3735 34647 7012 RTR /MULTIPLY BY 400 SEG SIZE 3736 34650 3203 DCA FILCT2 /SAVE "PRODUCT" 3737 34651 1203 TAD FILCT2 3738 34652 7004 RAL 3739 34653 0140 AND SEGSM1 /THROW OUT CONTRIBUTION FROM HI ORDER BITS OF EXTENSION 3740 34654 1363 TAD FIBAS1 /START OF LOGICAL FILE AREA 3741 34655 7106 CLL RTL 3742 34656 3630 DCA I FILCPX /SAVE IN DISK EXTENSION IN PARAMETER BLOCK 3743 34657 1203 TAD FILCT2 /NOW GET LOW ORDER ADDRESS 3744 34660 0134 AND SEGLMK 3745 34661 3203 DCA FILCT2 /AND SAVE IT 3746 34662 1230 TAD FILCPX /SET DISC ADDRESS 3747 34663 1034 TAD FILCPD 3748 34664 3230 DCA FILCPX /POINTS TO LOW ORDER ADDRESS IN PAR. BLOCK 3749 34665 1150 TAD FILCPA 3750 34666 7001 IAC 3751 34667 3200 DCA FILCDA /POINTS TO LOW ORDER ADDRESS IN CONTROL BLOCK 3752 34670 1600 TAD I FILCDA /GET WORD ADDRESS SUPPLIED BY USER 3753 34671 0140 AND SEGSM1 /(WORD IN SEGMENT) 3754 34672 1203 TAD FILCT2 /+ WORD ADDRESS FROM SEGMENT ARITHMETIC 3755 34673 3630 DCA I FILCPX /SAVE IT IN PARAMETER BLOCK 3756 34674 1230 TAD FILCPX /SET WORD COUNT 3757 34675 1145 TAD FILCWC 3758 34676 3230 DCA FILCPX /POINTS TO WORD COUNT IN PARAMETER BLOCK 3759 34677 3630 DCA I FILCPX /NOTHING TRANSFERRED YET 3760 34700 1200 TAD FILCDA 3761 34701 7001 IAC 3762 34702 3227 DCA FILCWA /POINTS TO WORD COUNT IN CONTROL BLOCK /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 86 3763 3764 34703 1140 FILCT1, TAD SEGSM1 /SEGS12-1 3765 34704 0600 AND I FILCDA /LOW ORDER ADDRESS IN CONTROL BLOCK 3766 34705 3203 DCA FILCT2 /DISC ADDRESS MOD SEGS!Z 3767 34706 1627 TAD I FILCWA /GET -WC FROM CONTROL BLOCK 3768 34707 7141 CLL CIA /+WC 3769 34710 1203 TAD FILCT2 /IF WE DO ENTIRE WC WILL WE GO INTO NEXT 3770 34711 0134 AND SEGLMK / SEGMENT? 3771 34712 7650 SNA CLA 3772 34713 7430 SZL 3773 34714 5317 JMP FILCT3 3774 34715 1627 TAD I FILCWA /NO 3775 34716 5321 JMP .+3 3776 34717 1134 FILCT3, TAD SEGLMK /SUBTRACT SEGS12 FROM WC, SO WE STAY IN SAME SEGMENT 3777 34720 1203 TAD FILCT2 3778 34721 3203 DCA FILCT2 /WORD COUNT FOR TRANSFER 3779 34722 1203 TAD FILCT2 /UPDATE WORD COUNT IN PARAMETER BLOCK 3780 34723 1630 TAD I FILCPX /OLD VALUE 3781 34724 3630 DCA I FILCPX /NEW VALUE 3782 34725 1203 TAD FILCT2 /UPDATE WORD COUNT IN FILE CONTROL BLOCK 3783 34726 7041 CIA /+WC 3784 34727 1627 TAD I FILCWA /OLD -WC 3785 34730 3627 DCA I FILCWA /NEW -WC 3786 34731 1627 TAD I FILCWA /ARE WE DONE? 3787 34732 7650 SNA CLA 3788 34733 5631 JMP I FILCTB /YES 3789 34734 1203 TAD FILCT2 /INCREMENT DISC ADDRESS 3790 34735 7141 CLL CIA /+WC 3791 34736 1600 TAD I FILCDA /OLD DISC ADDRESS 3792 34737 3600 DCA I FILCDA /NEW DISC ADDRESS 3793 34740 7430 SZL /OVERFLOW? 3794 34741 2550 ISZ I FILCPA /YES - INDEX DISC EXTENSION 3795 34742 1405 TAD I FILCSW /GET CURRENT SEGMENT # 3796 34743 7140 CLL CMA /-(SEGMENT # +1) 3797 34744 3203 DCA FILCT2 /SAVE IT 3798 34745 2005 ISZ FILCSW /POINTS TO NEXT SEGMENT IN WINDOW 3799 34746 1005 TAD FILCSW /ARE WE STILL IN THE WINDOW? 3800 34747 0035 AND C0007 3801 34750 7640 SZA CLA /NEXT POINTER IN CORE? 3802 34751 5356 JMP FILCT4 /YES, SEE IF NEXT SEGMENT IS CONTIGUOUS 3803 34752 1135 TAD BASWIN /NO, IS IT BASIC? 3804 34753 1005 TAD FILCSW /COMPARE THE WINDOW ADDRESS WITH BASIC WINDOW ADDRESS 3805 34754 7620 SNL CLA 3806 34755 5631 JMP I FILCTB /NO, RETURN 3807 34756 1405 FILCT4, TAD I FILCSW /GET THE NEXT SEGMENT 3808 34757 1203 TAD FILCT2 /CONTIGUOUS SEGMENTS? 3809 34760 7650 SNA CLA 3810 34761 5303 JMP FILCT1 /YES - CONTINUE THE TRANSFER 3811 34762 5631 JMP I FILCTB /RETURN 3812 34763 0031 FIBAS1, SWDEX+JOBMAX /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 87 3813 3814 /TAKE CARE OF DUPLEX AND UNDUPLEX IOT'S 3815 3816 34764 1002 UDUP, TAD C0200 /DUPLEX BIT IN DDB WORD 1 3817 34765 3003 UUND, DCA WS0 /WS0 CONTAINS BIT TO ADD FOR BOTH IOT'S 3818 34766 1160 TAD JOB 3819 34767 4464 TTYUSE /FIND INPUT DDB 3820 34770 3004 DCA WS1 /ADDRESS OF DDB 3821 34771 6211 DATFLD 3822 34772 1404 TAD I WS1 /WORD ONE OF DDB 3823 34773 0377 AND C7577 /CLEAR DUPLEX BIT 3824 34774 1003 TAD WS0 /SET IT AS CALLED FOR 3825 34775 3404 DCA I WS1 3826 34776 5461 UUOEXT 3827 3828 34777 7577 C7577, 7577 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 88 3829 3830 5000 *5000 3831 3832 /TELEPRINTER IOT'S 3833 3834 0003 UTELC= WS0 3835 3836 3837 35000 4231 UTEL, JMS UKT0 /FIND THE CONSOLE # ATTACHED TO JOB 3838 35001 2132 ISZ CONDBA /POINT TO OUTPUT SIDE 3839 35002 1230 UULPT, TAD UJSTEL /TTY FLAG 3840 35003 3206 UUPTP, DCA UOUTFL /SAVE THE DEVICE'S FLAG 3841 35004 4315 JMS UKT1 /WHAT IS REQUESTED BY USER? 3842 35005 5251 JMP UTELS /SEND A STRING (6XX0) 3843 35006 0020 UOUTFL, JSTEL /DEVICE FLAG POSITION IN STR1 3844 35007 5677 JMP I UTELS1 /UNCONDITIONAL SKIP ON USER "TSF, PSF, OR LSF" 3845 35010 7650 SNA CLA /6XX4 OR 6XX2 3846 35011 5461 UUOEXT /6XX2 - IF WE CLEAR FLAGS WE MAY DIE 3847 35012 1106 TAD L2SA /6XX4 3848 35013 3031 DCA TTCHAR 3849 35014 4573 PRINT /OUTPUT THE CHARACTER 3850 35015 7410 SKP /NO ROOM - REDO LATER 3851 35016 5461 UUOEXT /OK - ALL DONE 3852 35017 7240 STA /BACK UP HIS/HER PC 3853 35020 1104 TAD L2SV0 3854 35021 3104 DCA L2SV0 3855 35022 5226 JMP UTELS6 3856 35023 3106 UTELS5, DCA L2SA /CLEAR USER'S AC 3857 35024 1231 TAD UKT0 /KEEP HIM/HER RUNNING IF WE WERE ABLE TO ACCEPT ANY CHARACTERS 3858 35025 7650 SNA CLA 3859 35026 1206 UTELS6, TAD UOUTFL /MAKE HIM/HER WAIT FOR DEVICE FLAG 3860 35027 5461 UUOEXT /AND AWAY 3861 35030 0020 UJSTEL, JSTEL 3862 3863 35031 0000 UKT0, 0 3864 35032 1160 TAD JOB 3865 35033 4464 TTYUSE /GET ADDR OF INPUT DDB 3866 35034 3133 DCA CONDDB /SAVE IT 3867 35035 6211 DATFLD /GET CONTENTS OF FIRST WORD OF DDB 3868 35036 1533 TAD I CONDDB /UNIT # + FLAGS IN AC 3869 35037 6201 CDF 3870 35040 0040 AND C1000 3871 35041 7650 SNA CLA /CONSOLE IN SI MODE? 3872 35042 5631 JMP I UKT0 /NO - OK TO CONTINUE 3873 35043 4476 GETJTW 3874 35044 0003 JOBWMK 3875 35045 7200 CLA 3876 35046 6211 DATFLD 3877 35047 3405 DCA I JOBSWA /CLEAR HIS/HER WAIT MASK TO HANG HIM/HER UP 3878 35050 5470 REDO /SI WILL WAKE HIM/HER UP TO TRY AGAIN LATER /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 89 3879 3880 0034 UJSPTP= C0004 3881 / "SEND-A-STRING" 3882 3883 3884 35051 4150 UTELS, UDF /SELECT USER'S FIELD 3885 35052 1506 TAD I L2SA 3886 35053 7650 SNA CLA 3887 35054 5275 JMP UTELS4 /USER'S W.C. IS ZERO - SO SEND NOTHING 3888 35055 3231 DCA UKT0 3889 35056 1106 TAD L2SA 3890 35057 7001 IAC 3891 35060 3003 DCA UTELC /POINTS TO ADDRESS OF STRING IN USER AREA 3892 35061 1403 TAD I UTELC /GET ADDRESS-1 OF STRING 3893 35062 3016 DCA AXS2 /SAVE POINTER TO STRING 3894 35063 1416 UTELS3, TAD I AXS2 /GET CHARACTER FROM USER 3895 35064 6201 CDF 3896 35065 3031 DCA TTCHAR 3897 35066 4573 PRINT /OUTPUT THE CHARACTER 3898 35067 5223 JMP UTELS5 /BUFFER FULL 3899 35070 4150 UDF 3900 35071 2403 ISZ I UTELC /BUMP ADDRESS IN USER AREA 3901 35072 2231 ISZ UKT0 /DOESN'T MATTER THAT WE MAY SKIP THIS 3902 35073 2506 ISZ I L2SA /BUMP USER'S WORD COUNT 3903 35074 5263 JMP UTELS3 /KEEP GOING 3904 35075 3106 UTELS4, DCA L2SA /ALL DONE --- CLEAR USER AC 3905 35076 5677 JMP I UTELS1 /EXIT AND SKIP 3906 35077 7215 UTELS1, UUOEX2 3907 3908 /LINE PRINTER UUO'S 3909 3910 35100 4714 ULPT, JMS I UPTLPA 3911 35101 3033 DEVTBE+3 /LINE PRINTER POSITION IN DEVTBL 3912 35102 1301 TAD .-1 3913 35103 3132 DCA CONDBA /IT'S OK TO USE THE PRINTER 3914 35104 1230 TAD UJSTEL /LPT FLAG (20+20=40) 3915 35105 5202 JMP UULPT 3916 3917 /PAPER TAPE PUNCH UUO'S 3918 3919 35106 4714 UPTP, JMS I UPTLPA /OK TO USE PUNCH? 3920 35107 3031 DEVTBE+1 /PUNCH'S POSITION IN THE DEVTBL 3921 35110 1307 TAD .-1 3922 35111 3132 DCA CONDBA /PASS ON THE PUNCH'S POSITION 3923 35112 1034 TAD UJSPTP /PUNCH FLAG 3924 35113 5203 JMP UUPTP 3925 35114 2125 UPTLPA, DEVCHK /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 90 3926 3927 /ROUTINE TO ANALYZE IOT'S 3928 /CALLING SEQUENCE: 3929 / IOT IN UUOCAL 3930 / JMS UKT1 3931 / RETURN FOR STRING IOT 3932 / FLAG TO CHECK IN STR1 3933 / RETURN FOR NON-SKIPPING FLAG TESTS 3934 / RETURN FOR EVENT TIMES 2 AND 4 (AC=BIT 9 OF IOT; LINK=BIT 10) 3935 / ILLEGAL MICRO-CODING RESULTS IN "NOP" 3936 / SKIPPING FLAG RESULTS IN INCREMENT OF USER PC 3937 35115 0000 UKT1, 0 3938 35116 1003 TAD UUOCAL 3939 35117 0035 AND C0007 3940 35120 7450 SNA /STRING? 3941 35121 5715 JMP I UKT1 /YES 3942 35122 2315 ISZ UKT1 3943 35123 7110 CLL RAR /NO 3944 35124 7420 SNL /SKIP TEST? 3945 35125 5340 JMP UKT12 /NO 3946 35126 7640 SZA CLA /YES - ANYTHING ELSE? 3947 35127 5461 UUOEXT /YES - BAD MICRO-CODING 3948 35130 4476 GETJTW /GET HIS/HER STR1 3949 35131 0001 JOBSTS+1 3950 35132 0715 AND I UKT1 /FLAG TO CHECK 3951 35133 7112 CLL RTR /IGNORE THE ERROR FLAG 3952 35134 2315 ISZ UKT1 /INDEX PAST ARGUMENT 3953 35135 7650 SNA CLA /FLAG SET? 3954 35136 5715 JMP I UKT1 /NO - DON'T SKIP 3955 35137 5677 JMP I UTELS1 /YES - SKIP ON EXIT 3956 35140 2315 UKT12, ISZ UKT1 3957 35141 2315 ISZ UKT1 3958 35142 7110 CLL RAR 3959 35143 5715 JMP I UKT1 /INDEX RETURN /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 91 3960 3961 35144 6201 UUOERR, CDF /SET "ILLEGAL IOT" ERROR CODE 3962 35145 1160 TAD JOB 3963 35146 4463 ERROR 3964 35147 0001 UUOERF /CODE=1 3965 35150 5577 USYN, WAIT /AND BACK TO THE SCHEDULER 3966 3967 0003 USTMT1= WS0 3968 35151 1160 SLEEP, TAD JOB 3969 35152 7650 SNA CLA /PROBABLE TROUBLE DUE TO EAE 3970 35153 5467 EXIT 3971 35154 1032 TAD C0002 3972 35155 7041 DOUSTM, CIA /NEGATE 3973 35156 3367 DCA DOSTM1 /SAVE - # UNITS OF TIME 3974 35157 1160 TAD JOB /SET CLKTBBL ENTRY FOR THIS JOB 3975 35160 1370 TAD CLKTBA 3976 35161 3003 DCA USTMT1 /POINTS TO THIS JOB'S ENTRY 3977 35162 1367 TAD DOSTM1 3978 35163 6211 DATFLD 3979 35164 3403 DCA I USTMT1 /SET TABLE ENTRY 3980 35165 7130 STL RAR /SET AC=JSTIME 3981 35166 5461 UUOEXT /EXIT AND WAIT 3982 35167 0000 DOSTM1, 0 3983 35170 3077 CLKTBA, CLKTBL /JOB TIMER TABLE ADDRESS 3984 3985 5171 *5171 3986 35171 7410 OVERLA, SKP /ERROR 3987 35172 5777 JMP I OVER1A /OK, FINISH UP 3988 35173 1442 TAD I FANCOR /GET NUMBER OF JOB IN TROUBLE 3989 35174 4463 ERROR /PASS ERROR TO USER 3990 35175 0005 DSKERR 3991 35176 5777 JMP I OVER1A /NOW FINISH UP 3992 35177 5565 OVER1A, OVERL1 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 92 3993 3994 /NULL JOB IS THE ONLY INSTRUCTION IN FIELD 0 WHICH 3995 /IS EXECUTED IN USER MODE. 3996 /IT IS RUN WHENEVER THERE IS NOTHING ELSE 3997 /TO DO, OR NOTHING ELSE THAT CAN BE DONE. 3998 / 3999 /WHEN DEBUGGING THE MONITOR, IT IS POSSIBLE 4000 /TO STOP (VIA THE PDP-8 OPERATOR CONSOLE) THE MONITOR 4001 /TO ENTER XDDT. THIS MAY ONLY BE DONE 4002 /WHEN THE SYSTEM IS IN NULJOB. IF THE 4003 /SYSTEM IS STOPPED WHEN NOT IN NULJOB, IT MAY 4004 /BE RESTARTED BY HITTING "CONTINUE," AND THEN 4005 /STOPPED AGAIN. KEEP TRYING - EVENTUALLY YOU'LL CATCH IT. 4006 /DO NOT STOP THE SYSTEM (AND EXPECT TO GET AWAY WITH IT) 4007 /IF ANY I/O IS IN PROGRESS. 4008 4009 /IF THE SYSTEM IS STOPPED IN NULJOB, IT MAY BE 4010 /RESTARTED AT LOCATION 4201 IN FIELD 0. 4011 4012 4013 4014 35200 5200 NULJOB, JMP . /IT'S A BIGGY, ISN'T IT? /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 93 4015 4016 4017 /RETURN FILE WINDOW INDEX 4018 /CALL TAD POINTER TO FILE CONTROL 4019 / JMS FILIX 4020 / SEGMENT ADDRESS NOT IN WINDOW 4021 / NON-EXISTENT FILE ADDRESS 4022 / OK RETURN WITH ADDRESS OF SEGMENT POINTER 4023 4024 0034 FILIDA= C0004 /FILDA 4025 4026 35201 0000 FILIX, 0 4027 35202 3277 DCA FILICN /SAVE POINTER TO FILE CONTROL 4028 35203 1277 TAD FILICN 4029 35204 1034 TAD FILIDA /4 4030 35205 6211 DATFLD 4031 35206 3362 DCA FILSP2 /POINTS TO FILE EXTENSION IN CONTROL BLOCK 4032 35207 1762 TAD I FILSP2 /FILE EXTENSION 4033 35210 0146 AND C0177 /LIMIT FILE SIZE TO 1777777 (?!?) 4034 35211 3361 DCA FILSP1 /HIGH ORDER COMPONENT OF SEG # 4035 35212 2362 ISZ FILSP2 /POINTS TO LOW ARDER ADD 4036 35213 1762 TAD I FILSP2 /LOW ORDER ADDRESS 4037 35214 0134 AND SEGLMK /GET RID OF ADDRESS IN SEGMENT 4038 35215 7104 CLL RAL 4039 35216 1361 TAD FILSP1 /HIGH ORDER PART 4040 35217 7006 RTL /"DIVIDE" BY 400 SEG SIZE 4041 35220 7006 RTL 4042 35221 7041 CIA /-(SEGMENT# -1) 4043 35222 3276 DCA FILISN 4044 35223 1277 TAD FILICN 4045 35224 7001 IAC 4046 35225 3364 DCA FILICA /POINTS TO SEGMENT # INDEX IN WINDOW 4047 35226 1677 TAD I FILICN /POINT TO WINDOW 4048 35227 3277 DCA FILICN 4049 35230 1677 TAD I FILICN /GET WORD 1 OF WINDOW 4050 35231 0035 AND C0007 /VALID WINDOW? 4051 35232 7440 SZA 4052 35233 5252 JMP FILIX5 /NO, IT IS A BASIC WINDOW 4053 35234 1764 TAD I FILICA /YES 4054 35235 1276 TAD FILISN 4055 35236 7540 SMA SZA /FILSCT-SN>0? 4056 35237 5247 JMP FILIX2 /YES, SEGMENT POINTER NOT IN CORE 4057 35240 1136 TAD C0006 /FILSCT+6-SN<0? 4058 35241 7500 SMA 4059 35242 5263 JMP FILIX1 4060 35243 7200 CLA /YES, SEGMENT POINTER NOT IN CORE 4061 35244 1677 TAD I FILICN /ANY MORE SEGMENTS? 4062 35245 7650 SNA CLA 4063 35246 2201 ISZ FILIX /NO, NON-EXISTENT FILE ADDRESS 4064 35247 7200 FILIX2, CLA 4065 35250 6201 FILIX3, CDF 4066 35251 5601 JMP I FILIX /RETURN /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 94 4067 4068 35252 0136 FILIX5, AND C0006 /IS IT BASIC OR INVALID WINDOW? 4069 35253 7650 SNA CLA 4070 35254 5250 JMP FILIX3 /INVALID WINDOW 4071 35255 1276 TAD FILISN /GET -(SEG # -1) 4072 35256 1135 TAD BASWIN 4073 35257 7041 CIA /AC=SEG # -1 4074 35260 7510 SPA 4075 35261 5266 JMP FILIX4 4076 35262 5246 JMP FILIX2-1 /BASIC BUT NON-EXISTENT 4077 35263 7041 FILIX1, CIA 4078 35264 1035 TAD C0007 /WINDOW INDEX 4079 35265 1277 TAD FILICN /START OF WINDOW 4080 35266 3364 FILIX4, DCA FILICA /POINTS TO SEGMENT # 4081 35267 2201 ISZ FILIX /SEGMENT ADDRESS IN CORE - EXIT 4082 35270 1764 TAD I FILICA /GET SEGMENT # FOR THIS FILE ADDRESS 4083 35271 7650 SNA CLA 4084 35272 5250 JMP FILIX3 /ZERO SEGMENT NUMBER IS NOT A SEGMENT! 4085 35273 1364 TAD FILICA /EXIT WITH POINTER TO THIS SEGMENT IN AC 4086 35274 2201 ISZ FILIX 4087 35275 5250 JMP FILIX3 4088 4089 35276 0000 FILISN, 0 4090 35277 0000 FILICN, 0 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 95 4091 4092 /RETURN USER RUN TIME 4093 /USER CALLS WITH ADDRESS OF THREE WORD BLOCK 4094 /WORD 1 CONTAINS THE JOB # 4095 /THE HI AND LO ORDER RUN TIMES ARE RETURNED IN WORDS 2 AND 3 4096 4097 35300 4150 UURT, UDF /USER FIELD 4098 35301 1506 TAD I L2SA /JOB # 4099 35302 4715 JMS I JOBCHB /SEE IF IT'S A VALID JOB 4100 35303 5310 JMP UURT0 /IT WASN'T 4101 35304 1044 TAD JOBTBA 4102 35305 4477 GETJTI /LOW ORDER RUNTIME 4103 35306 0023 JOBRTM 4104 35307 2005 ISZ JOBSWA 4105 35310 3363 UURT0, DCA UCOP2 4106 35311 6211 DATFLD 4107 35312 1405 TAD I JOBSWA 4108 35313 3362 DCA UCOP1 4109 35314 5346 JMP UCOPY2-2 /COPY IN USER AREA 4110 35315 7330 JOBCHB, JOBCHK 4111 4112 4113 /RETURN THE TIME OF DAY IN SYSTEM TICKS SINCE MIDNIGHT. 4114 /USER CALLS WITH ADDRESS OF TWO WORD BLOCK IN AC. 4115 /HI AND LOW ORDER PARTS RETURNED IN WORDS 1 AND 2. 4116 4117 35316 1051 UTOD, TAD CLK1 /-TIME TILL MIDNIGHT 4118 35317 7100 CLL 4119 35320 1327 TAD INKLK1 /TIME AT MIDNIGHT 4120 35321 3363 DCA UCOP2 /LOW ORDER TIME NOW 4121 35322 7004 RAL 4122 35323 1050 TAD CLK2 /-TIME TILL MIDNIGHT 4123 35324 1330 TAD INKLK2 /TIME AT MIDNIGHT 4124 35325 3362 DCA UCOP1 /TIME NOW (HIGH ORDER) 4125 35326 5350 JMP UCOPY2 /COPY IN USER AREA 4126 4127 35327 7400 INKLK1, INCLK1 4128 35330 0322 INKLK2, INCLK2 4129 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 96 4130 4131 /RETURN THE USER'S STATUS REGISTERS 4132 /CALLED WITH ADDRESS OF THREE WORD BLOCK IN AC 4133 4134 35331 4476 UCKS, GETJTW 4135 35332 0000 JOBSTS 4136 35333 3361 DCA UCOP0 /STATUS 0 4137 35334 6211 DATFLD 4138 35335 2005 ISZ JOBSWA 4139 35336 1405 TAD I JOBSWA /STATUS 1 4140 35337 3362 DCA UCOP1 4141 35340 2005 ISZ JOBSWA 4142 35341 1405 TAD I JOBSWA 4143 35342 3363 DCA UCOP2 /STATUS 2 4144 35343 4150 UDF /SELECT USER FIELD 4145 35344 1361 TAD UCOP0 4146 35345 3506 DCA I L2SA 4147 35346 2106 ISZ L2SA /BUMP POINTER 4148 35347 7000 NOP 4149 35350 4150 UCOPY2, UDF /FOR LATER ENTRIES 4150 35351 1362 TAD UCOP1 /SECOND WORD 4151 35352 3506 DCA I L2SA 4152 35353 2106 ISZ L2SA 4153 35354 7000 NOP 4154 35355 1363 TAD UCOP2 /THIRD WORD 4155 35356 3506 DCA I L2SA 4156 35357 3106 DCA L2SA /CLEAR USER AC 4157 35360 5461 UUOEXT 4158 4159 DEVJO0, 4160 UCOP0, 4161 35361 0000 FILSP1, 0 4162 4163 UCOP1, 4164 35362 0000 FILSP2, 0 4165 4166 35363 0000 UCOP2, 0 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 97 4167 4168 /ROUTINE TO EXTRACT JOB NUMBER FROM DDB 4169 /CALL 4170 / TAD (DDB ADDRESS) 4171 / JMS DEVJOB 4172 / RETURN WITH JOB # IN AC 4173 4174 FILICA, 4175 35364 0000 DEVJOB, 0 4176 35365 7001 IAC 4177 35366 3361 DCA DEVJO0 /POINTS TO WORD 1 OF DDB 4178 35367 6211 DATFLD 4179 35370 1761 TAD I DEVJO0 /GET WORD 1 4180 35371 0036 AND C0037 /IGNORE JUNK 4181 35372 5764 JMP I DEVJOB /RETURN 4182 35373 7037 C7037, SWAP LOCK NOTRUN CJOB 4183 35374 2724 FIPLOA, FIPLOK 4184 35375 1373 L2FIP, TAD C7037 /OK - ALLOW FIP TO BE OVER-WRITTEN BY USER JOBS AGAIN 4185 35376 3774 DCA I FIPLOA 4186 35377 5467 EXIT /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 98 4187 4188 4189 /WE ENTER THIS ROUTINE AT LEVEL 2 4190 /AFTER COMPLETING A DISK TRANSFER 4191 /IF A FILE TRANSFER IS INVOLVED, WE CONTINUE 4192 /WITH IT 4193 /IF OVERLAY, WE GO TO OVERLAY CONTROL 4194 /IF OVERLAY IS COMPLETED WE FORCE THE SCHEDULER TO RUN THE PHANTOM 4195 4196 0003 DSURT1= WS0 4197 0004 DSURT2= WS1 4198 4199 0034 DSURDA= C0004 /FILDA 4200 4201 0003 DSUET1= WS0 4202 4203 4204 35400 7001 DSURET, IAC /ERROR IN DISK TRANSFER 4205 35401 3337 DCA DSKCOD /SAVE ERROR CODE 4206 35402 1017 TAD DSKPTR /POINTS TO REQUEST CURRENTLY RUNNING 4207 35403 1334 TAD DSUMTB /FIND RELATIVE INDEX IN TABLE 4208 35404 7112 CLL RTR /DIVIDE BY FOUR 4209 35405 0035 AND C0007 /SAVE FIELD 4210 35406 1162 TAD CORTBA /INDEX INTO CORTBL 4211 35407 3332 DCA DSUCOR 4212 35410 1732 TAD I DSUCOR /GET CORTBL ENTRY 4213 35411 0036 AND C0037 /EXTRACT JOB # 4214 35412 1044 TAD JOBTBA /POINTS TO JOBTBL 4215 35413 3354 DCA DSUJTE /SAVE JOBTBL ADDRESS 4216 35414 1354 TAD DSUJTE 4217 35415 4574 GETJTA /GET ADDRESS OF STR0 4218 35416 0000 JOBSTS 4219 35417 3353 DCA DSUJST /SAVE IT 4220 35420 1337 TAD DSKCOD /IS THERE AN ERROR? 4221 35421 7440 SZA 4222 35422 5263 JMP DSURER /YES - JMP OUT OF THE ROUTINE AS QUICKLY AS POSSIBLE 4223 35423 4355 JMS DSUPAR /PARAMETER BLOCK ADDRESS 4224 35424 1034 TAD DSURDA 4225 35425 3003 DCA DSURT1 /POINTS TO WORD 5 OF PARAMETERS 4226 35426 1715 TAD I DSURPA /ADDRESS OF PARAMETERS 4227 35427 7001 IAC 4228 35430 3004 DCA DSURT2 /POINTS TO DISK EXTENSION IN PARAMETERS 4229 35431 6211 DATFLD 4230 35432 1403 TAD I DSURT1 /DISC EXTENSION FROM CONTROL... 4231 35433 3404 DCA I DSURT2 / ... TO PARAMETERS 4232 35434 1004 TAD DSURT2 4233 35435 1034 TAD C0004 4234 35436 3004 DCA DSURT2 /POINTS TO DISC ADDRESS IN PARAMETERS 4235 35437 2003 ISZ DSURT1 /POINTS TO DISC ADDRESS IN FILE CONTROL 4236 35440 1403 TAD I DSURT1 /DISC ADDRESS FROM CONTROL... 4237 35441 3404 DCA I DSURT2 / ...TO PARAMETERS 4238 35442 2003 ISZ DSURT1 /POINTS TO WORD COUNT IN FILE CONTROL 4239 35443 7144 CLL CMA RAL 4240 35444 1004 TAD DSURT2 4241 35445 3004 DCA DSURT2 /POINTS TO WORD COUNT IN PARAMETERS 4242 35446 1404 TAD I DSURT2 /SAVE TEMPORARILY -WC FROM PARAMETERS 4243 35447 7041 CIA /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 99 4244 35450 3337 DCA DSKCOD 4245 35451 1403 TAD I DSURT1 /MOVE WC FROM FILE CONTROL... 4246 35452 3404 DCA I DSURT2 / ...TO PARAMETERS 4247 35453 2004 ISZ DSURT2 /POINTS TO CORE ADD IN PARAM. 4248 35454 1337 TAD DSKCOD /UPDATE CORE ADD BY COUNT TRANSFERRED 4249 35455 1404 TAD I DSURT2 4250 35456 3404 DCA I DSURT2 /SAVE NEW AADD 4251 35457 1403 TAD I DSURT1 /GET WORD COUNT FROM CONTROL 4252 35460 6201 CDF 4253 35461 7640 C7640, SZA CLA /ARE WE DONE? 4254 35462 5317 JMP DSURE2 /NO 4255 35463 3337 DSURER, DCA DSKCOD /SAVE ERROR STATUS IF IT IS AN ERROR 4256 35464 1715 TAD I DSURPA /GET ADDRESS OF PARAMETER BLOCK 4257 35465 3270 DCA .+3 /FOR CALL TO FILERR 4258 35466 1337 TAD DSKCOD /ERROR CODE 4259 35467 4716 JMS I DSUFEA /HANDLE ERROR 4260 35470 0000 0 4261 35471 7100 CLL 4262 35472 1732 TAD I DSUCOR 4263 35473 1261 TAD C7640 /SET "NOTRUN" IF NOT INHIBITED 4264 35474 0333 AND DSHOLD /SAVE "NOTRUN," "NOHOLD," & AND JOB 4265 35475 7420 SNL /ANY MORE BONUSES DUE? 4266 35476 3732 DCA I DSUCOR /YES - SET "NOTRUN" SO HE WON'T BE SWAPPED OUT BEFORE BEING RUN AGAIN 4267 35477 3355 DSURE1, DCA DSFLAG 4268 35500 2353 ISZ DSUJST /SET INACTIVE FLAG IN STR1 4269 35501 1017 TAD DSKPTR /FIGURE OUT WHICH INTERNAL FILE # 4270 35502 1334 TAD DSUMTB 4271 35503 4735 JMS I DGETJX 4272 35504 6211 DATFLD 4273 35505 1753 TAD I DSUJST /NOW SET FILE READY & DUMMY WAIT BIT 4274 35506 3753 DCA I DSUJST /SAVE STR1 4275 35507 4340 JMS DSURE4 4276 35510 2355 ISZ DSFLAG /THIS TRANSFER COMPLETE? 4277 35511 5466 RSCHED /YES - BUMP OOFF THE NULL JOB IF POSSIBLE 4278 35512 1732 TAD I DSUCOR 4279 35513 5714 JMP I .+1 /GO SET UP FOR THE NEXT PART OF THIS TRANSFER 4280 35514 0575 FILCON 4281 35515 7744 DSURPA, DSPARM 4282 35516 4211 DSUFEA, FILERR /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 100 4283 4284 /MOVE SEGMENT WINDOW 4285 4286 35517 1354 DSURE2, TAD DSUJTE /SET JOBLNK 4287 35520 4574 GETJTA 4288 35521 0007 JOBLNK 4289 35522 3337 DCA DSKCOD /SAVE POINTER TO JOBLNK 4290 35523 1715 TAD I DSURPA /GET ADDRESS OF PARAMETER BLOCK 4291 35524 6211 DATFLD 4292 35525 3737 DCA I DSKCOD /AND SAVE IN JOBLNK 4293 35526 6201 CDF 4294 35527 3715 DCA I DSURPA /CLEAR DSPARM 4295 35530 7240 STA /-1 TO SET TRANSFER INCOMPLETE FLAG 4296 35531 5277 JMP DSURE1 4297 4298 35532 0000 DSUCOR, 0 4299 35533 1177 DSHOLD, NOTRUN NOHOLD CJOB 4300 35534 4542 DSUMTB, -DSUTBL 4301 35535 5600 DGETJX, GETJFX 4302 35536 5761 DSKCT, DSKCON 4303 35537 0000 DSKCOD, 0 4304 4305 4306 35540 0000 DSURE4, 0 4307 35541 1017 TAD DSKPTR /CURRENT REQUEST POINTER 4308 35542 3003 DCA DSUET1 4309 35543 6211 DATFLD 4310 35544 3403 DCA I DSUET1 /CLEAR THIS REQUEST 4311 35545 6201 CDF 4312 35546 1715 TAD I DSURPA /RETURN PARAMETER BLOCK IF FINISHED 4313 35547 7440 SZA 4314 35550 4576 RETBLK /OK - RETURN IT 4315 35551 4736 JMS I DSKCT /DECREMENT BUSY - START ANY TRANSFER THAT'S WAITING 4316 35552 5740 JMP I DSURE4 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 101 4317 4318 35553 0000 DSUJST, 0 /POINTER TO JOB STATUS 4319 35554 0000 DSUJTE, 0 /JOB TABLE ENTRY 4320 4321 DSFLAG, 4322 35555 0000 DSUPAR, 0 /GET PARAMETER BLOCK ADDRESS 4323 35556 1715 TAD I DSURPA /GET ADDRESS 4324 35557 1035 TAD C0007 /GET POINTER TO LAST WORD IN BLOCK 4325 35560 3003 DCA DSUET1 4326 35561 6211 DATFLD 4327 35562 1403 TAD I DSUET1 /GET ADDRESS OF FILE CONTROL 4328 35563 6201 CDF 4329 35564 5755 JMP I DSUPAR /EXIT 4330 4331 35565 4355 OVERL1, JMS DSUPAR /GET ADDRESS OF FILE CONTROL, & CLEAR DSFLAG 4332 35566 7440 SZA 4333 35567 5374 JMP OVE2 4334 35570 1442 TAD I FANCOR 4335 35571 1040 TAD C1000 /NOT RUN YET 4336 35572 3442 DCA I FANCOR 4337 35573 1377 TAD SCHPHA 4338 35574 3355 OVE2, DCA DSFLAG /DISPATCH ADDRESS 4339 35575 4340 JMS DSURE4 4340 35576 5755 JMP I DSFLAG 4341 4342 35577 3051 SCHPHA, SCHFAN 4343 4344 /GET JSFX 4345 /CALL TAD FILE # 4346 / JMS GETJFX 4347 / RETURN WITH JSFX IN AC 4348 35600 0000 GETJFX, 0 4349 35601 0033 AND C0003 /FILE # ONLY 4350 35602 7040 CMA 4351 35603 3370 DCA TRAC /-SHIFT COUNT 4352 35604 7130 STL RAR 4353 35605 7010 RAR 4354 35606 2370 ISZ TRAC /DONE? 4355 35607 5205 JMP .-2 4356 35610 5600 JMP I GETJFX /YES, EXIT WITH BIT SET IN AC 4357 4358 35611 1156 USIZE, TAD SEGSIZ /RETURN SEGMENT SIZE IN AC 4359 35612 5217 JMP UUAC 4360 35613 1160 UUSE, TAD JOB /RETURN JOB # IN AC 4361 35614 5217 JMP UUAC 4362 35615 0012 TICSPS /# TICKS PER SECOND 4363 35616 1215 URCR, TAD .-1 /RETURN CLOCK RATE 4364 35617 3106 UUAC, DCA L2SA 4365 35620 5461 UUOEXT /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 102 4366 4367 /ROUTINE TO RECOGNIZE AND REPLY TO ^C 4368 4369 35621 1133 GIR9, TAD CONDDB 4370 35622 4732 JMS I PTJOB /GET HIS/HER JOB NUMBER FROM THE DDB 4371 35623 6201 CDF 4372 35624 1044 TAD JOBTBA 4373 35625 3004 DCA WS1 4374 35626 1004 TAD WS1 /POINTS TO JOB DATA AREA 4375 35627 4477 GETJTI 4376 35630 0001 JOBSTS+1 /GET STR1 4377 35631 0261 AND GIRFCL /CLEAR TIMER, AND DELIMITER FLAGS & JSWAIT 4378 35632 6211 DATFLD 4379 35633 3405 DCA I JOBSWA 4380 35634 7126 STL RTL 4381 35635 1005 TAD JOBSWA 4382 35636 3003 DCA WS0 /POINTS AT WAIT MASK 1 4383 35637 1403 TAD I WS0 /ARE WE WAITING FOR A FILE TRANSFER? 4384 35640 0260 AND GIRFIL 4385 35641 2003 ISZ WS0 /POINTS AT WAIT 2 4386 35642 1403 TAD I WS0 /OR - WAITING FOR DECTAPE, RK05, OR CARDREADER? 4387 35643 7650 SNA CLA 4388 35644 2405 ISZ I JOBSWA /NO - SET DUMMY WAIT BIT 4389 35645 2003 ISZ WS0 /POINT TO RESTART ADDRESS 4390 35646 6201 CDF 4391 35647 1004 TAD WS1 /GET POIONTER TO JOBREG 4392 35650 4477 GETJTI 4393 35651 0011 JOBREG 4394 35652 7200 CLA 4395 35653 1133 TAD CONDDB /GET JOB NUMBER 4396 35654 4732 JMS I PTJOB /AC=JOB; DATA FIELD=1 4397 35655 5656 JMP I .+1 4398 35656 0647 GIR90 /OFF TO PART TWO 4399 4400 35657 6642 GIRCBF, CLRBUF 4401 35660 3600 GIRFIL, JSF0+JSF1+JSF2+JSF3 4402 35661 3676 GIRFCL, -JSTIME-JSDEL-JSWAIT-1 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 103 4403 4404 0034 SWBASE= C0004 /SWAP TRACK OF JOB 1 (SWDEX-1) 4405 4406 4407 4408 4409 /ROUTINE TO SET UP SWAP 4410 /CORTBL POINTER TO FIELD TO SWAPPED OUT IN WS0 4411 /FINISH= +FIELD # FOR SWAP IN; FINISH= -FIELD # FOR SWAP OUT 4412 /FIT=JOB TO BE SWAPPED IN OR PHANTOM TO BE BROUGHT IN 4413 /FORCE=FIELD TO BE SWAPPED OUT 4414 /ENTER AT SWAPIN FOR SWAP IN 4415 /ENTER AT SWPOUT FOR SWAP OUT 4416 4417 4418 35662 1003 SWPOUT, TAD WS0 /OR SWAP BIT INTO CORTBL 4419 35663 4460 IOR 4420 35664 4000 SWAP 4421 35665 1403 TAD I WS0 /JOBS ARE THE ONLY ONES TO BE SWAPPED OUT 4422 35666 4370 JMS TRAC /GET THE TRACK # FOR THIS JOB 4423 35667 3154 DCA OUTTRC /SAVE IT 4424 35670 1054 SWAPIN, TAD FINISH /FINISH HAS FIELD # FOR SWAP ACTIVITY + OR - 4425 35671 7510 SPA 4426 35672 7041 CIA /GET THE ABSOLUTE VALUE 4427 35673 7106 CLL RTL 4428 35674 7004 RAL /IN POSITION 00X0 4429 35675 3053 DCA SQREQ /SAVE IT FOR SETTING UP DISC I/O 4430 35676 1055 TAD FIT /IS A PHANTOM NEEDED? 4431 35677 0142 AND C0600 4432 35700 7450 SNA 4433 35701 5312 JMP SWAP1 /NO JOB IS TO BROUGHT IN 4434 35702 0156 AND C0400 /IS FIP NEEDED? 4435 35703 7640 SZA CLA 4436 IFZERO RF08-40 /YES, DF32 NEEDS TRACK IN POSITION 0X00 4437 35704 7001 IFZERO RF08 /YES, RF08 NEEDS TRACK IN POSITION 000X 4438 35705 3153 SWAP3, DCA INTRC 4439 35706 2165 ISZ DSBUSY /IS ANY DISC ACTIVITY GOING ON? 4440 35707 5465 SCHED /YES, SO FIND A RESIDENT JOB 4441 35710 4557 JMS I SWPIOA /NO, START THE SWAP I/O 4442 35711 5465 SCHED /FIND A RESIDENT JOB IN THE MEANTIME 4443 35712 1055 SWAP1, TAD FIT /GET THE JOB # TO BE SWAPPED IN 4444 35713 4370 JMS TRAC /GET ITS TRACK # 4445 35714 5305 JMP SWAP3 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 104 4446 4447 4448 /ROUTINE TO SET FLAG IN USER STATUS REG AND EXIT 4449 /CALLING SEQUENCE: 4450 / CONDBA POINTS TO POSITION IN DEVTBL 4451 / TAD (FLAGS TO SET) 4452 / JMS PTSTAR 4453 / RETURN 4454 4455 35715 0000 PTSTAR, 0 4456 35716 3330 DCA PTFLAG /SAVE FLAGS TO SET 4457 35717 1532 TAD I CONDBA 4458 35720 4732 JMS I PTJOB /GET JOB # FROM DDB 4459 35721 7450 SNA 4460 35722 5715 JMP I PTSTAR 4461 35723 1044 TAD JOBTBA /START OF JOB TABLE 4462 35724 3370 DCA TRAC 4463 35725 7126 STL RTL 4464 35726 1770 TAD I TRAC /ADDRESS OF STR1 4465 35727 4460 IOR /OR IN FLAGS 4466 35730 0000 PTFLAG, 0 4467 35731 5715 JMP I PTSTAR 4468 35732 5364 PTJOB, DEVJOB 4469 4470 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 105 4471 4472 /DECTAPE HANDLER CODE 4473 /FOR DISK TRANSFERS TO OR FROM USER SWAP AREA 4474 /ALSO FOR ALL LEVEL 2 COMPLETION 4475 4476 35733 0000 DTDSF0, 0 /MAY RETURN UP TO 4 TIMES - EACH +1 FROM THE LAST 4477 35734 3760 DCA I DTDQUE /PUT THE DECTAPE'S DISK REQUEST IN THE QUEUE 4478 35735 6201 CDF 4479 35736 2165 ISZ DSBUSY /DISK ALREADY BUSY? 4480 35737 7410 SKP 4481 35740 4462 JMS I FIUSER /NO, START IT 4482 35741 6213 DTDXF0, CIF DATFLD 4483 35742 5733 JMP I DTDSF0 /BACK TO DECTAPE HANDLER 4484 35743 6213 DTL20, CIF DATFLD /LEVEL 2 DISPATCHER 4485 35744 5757 JMP I DTLEV2 4486 35745 4463 DTDEF0, ERROR /DECTAPE DISK ERROR 4487 35746 0002 SWPRER 4488 35747 2333 DTDCF0, ISZ DTDSF0 /INCR. RETURN 4489 35750 5341 JMP DTDXF0 4490 35751 2333 DTDSK, ISZ DTDSF0 /DISK ERROR - SKIP ON RETURN 4491 35752 6211 DATFLD 4492 35753 3760 DCA I DTDQUE /REMOVE REQUEST FROM QUEUE 4493 35754 6201 CDF 4494 35755 4361 JMS DSKCON /START ANYTHING ELSE THAT'S WAITING 4495 35756 5347 JMP DTDCF0 4496 35757 1004 DTLEV2, DTL21 /POINTER TO DECTAPE LEVEL 2 COMPLETION ENTRY 4497 35760 3245 DTDQUE, DSUTBL+7 /POSITION FOR FIELD 1 REQUESTS 4498 4499 35761 0000 DSKCON, 0 4500 35762 7340 STA CLL /REDUCE COUNT FOR DSBUSY 4501 35763 1165 TAD DSBUSY 4502 35764 3165 DCA DSBUSY 4503 35765 7430 SZL /IS THERE ANYTHING ELSE TO RUN? 4504 35766 4462 JMS I FIUSER /YES -- START NEXT TRANSFER 4505 35767 5761 JMP I DSKCON 4506 4507 35770 0000 TRAC, 0 4508 35771 0036 AND C0037 /JUST GET THE JOB # 4509 35772 1034 TAD SWBASE /TRACK # WHERE SWAP AREA BEGINS -1 TO TAKE CARE OF JOB 1 4510 IFZERO RF08-40< CLL RTL;RTL;RTL >/TRACK # IN POSITION 0X00 FOR DF32 4511 35773 5770 JMP I TRAC /RETURN /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 106 4512 4513 6000 *6000 4514 4515 36000 0000 KBDMOD, 0 4516 36001 1533 TAD I CONDDB 4517 36002 0040 AND C1000 4518 36003 7650 SNA CLA /USER MODE? 4519 36004 2200 ISZ KBDMOD /YES; CAUSE SKIP ON EXIT 4520 36005 5600 JMP I KBDMOD 4521 4522 3000 XOFF= 3000 4523 36006 7650 KBDFUL, -130 4524 36007 7710 KBDOFF, -70 4525 36010 1553 OFFBRK, KBDDLM 4526 4527 36011 0000 KBD06, 0 /SIZE CHECK FOR KEYBOARD INPUT 4528 36012 3200 DCA KBDMOD /SAVE POINTER TO CHARACTER COUNT 4529 36013 1600 TAD I KBDMOD 4530 36014 1206 TAD KBDFUL 4531 36015 7700 SMA CLA /BUFFER FULL? 4532 36016 5240 JMP KBD07 /YES 4533 36017 2211 ISZ KBD06 /SKIP ON RETURN - OK TO GIVE ANOTHER BLOCK 4534 36020 1600 TAD I KBDMOD 4535 36021 1207 TAD KBDOFF /TIME FOR XOFF? 4536 36022 7710 SPA CLA 4537 36023 5611 JMP I KBD06 /NO 4538 36024 1533 TAD I CONDDB /GET DDB FLAGS 4539 36025 7006 RTL 4540 36026 7530 SZL SPA /SHOULD "XOFF" BE SENT? 4541 36027 5611 JMP I KBD06 /NO - EITHER IT HAS ALREADY BEEN SENT OR HE'S IN SI MODE 4542 36030 7132 STL RTR /YES - REMEMBER TO SEND "XON" LATER 4543 36031 3533 DCA I CONDDB 4544 36032 1532 TAD I CONDBA /POINT TO WORD 2 OF OUTPUT SIDE 4545 36033 4460 IOR 4546 36034 3000 XOFF /SCHEDULE XOFF TO BE SENT 4547 36035 4644 JMS I TYPEC 4548 36036 4610 JMS I OFFBRK /SET KEYBOARD FLAG 4549 36037 5611 JMP I KBD06 4550 36040 1156 KBD07, TAD C0400 4551 36041 1533 TAD I CONDDB /SET BUFFER FULL BIT 4552 36042 3533 DCA I CONDDB 4553 36043 5611 JMP I KBD06 /EXIT - NO SKIP 4554 36044 1235 TYPEC, TYPE 4555 4556 36045 0000 ALLOK, 0 4557 36046 2245 ISZ ALLOK /WE DON'T CARE HOW BIG THE BUFFER IS 4558 36047 3200 DCA KBDMOD 4559 36050 1600 TAD I KBDMOD /THE COUNT 4560 36051 1206 TAD KBDFUL /THE LIMIT 4561 36052 7740 SMA SZA CLA 4562 36053 5645 JMP I ALLOK /TOO MANY - DON'T CLEAR "FULL STATUS" 4563 36054 1533 TAD I CONDDB 4564 36055 0260 AND CC7377 4565 36056 3533 DCA I CONDDB 4566 36057 5645 JMP I ALLOK 4567 36060 7377 CC7377, 7377 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 107 4568 4569 4570 /SEARCH FOR TTY 4571 /CALL TAD JOB # 4572 / TTYUSE 4573 / RETURN WITH DDB ADDR IN AC, 0 IF NOT FOUND 4574 36061 0000 TTYSRC, 0 4575 36062 0036 AND C0037 /GET JOB # 4576 36063 1275 TAD TTYTBA /START OF TTY TABLE 4577 36064 3132 DCA CONDBA 4578 36065 6211 DATFLD 4579 36066 1532 TAD I CONDBA /GET UNIT # FROM TABLE 4580 36067 7104 CLL RAL /POSITION IN DEVTBL 4581 36070 1163 TAD DEVTBA /POINTER TO DEVTBL 4582 36071 3132 DCA CONDBA 4583 36072 1532 TAD I CONDBA /DDB ADDRESS 4584 36073 6201 CDF 4585 36074 5661 JMP I TTYSRC 4586 36075 3124 TTYTBA, TTYTBL 4587 4588 36076 7330 JOBCHA, JOBCHK 4589 36077 1106 UCON, TAD L2SA /PICK UP JOB NO. 4590 36100 4676 JMS I JOBCHA /SEE IF IT'S A VALID JOB 4591 36101 5310 JMP UCON0 /IT WASN'T 4592 36102 4464 TTYUSE /GET DDB ADDRESS 4593 36103 3003 DCA WS0 4594 36104 6211 DATFLD 4595 36105 1403 TAD I WS0 /GET WORD 1 OF DDB 4596 36106 0036 AND C0037 /ISOLATE CONSOLE NO. 4597 36107 7410 SKP 4598 36110 7240 UCON0, STA /RETURN A -1 4599 36111 3106 DCA L2SA /STASH IT IN HIS/HER AC 4600 36112 5461 UUOEXT 4601 /DATE 4602 36113 1166 UDATE, TAD DATE 4603 36114 5311 JMP UCON0+1 /RETURN DATE IN AC /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 108 4604 4605 /RESTORE JOB REGISTERS 4606 /CALL TAD JOB # 4607 / RESJOB 4608 / RETURN 4609 4610 36115 0637 RESCOR, FIP SI CJOB 4611 4612 36116 0000 RESJO0, 0 4613 36117 0315 AND RESCOR /CLEAR CORE STATUS BITS 4614 36120 3160 DCA JOB /AND SAVE IN JOB 4615 36121 1160 TAD JOB 4616 36122 0036 AND C0037 4617 36123 1044 TAD JOBTBA 4618 36124 3347 DCA RESJO1 /JOBTBL POINTER FOR THIS JOB 4619 36125 6211 DATFLD 4620 36126 1747 TAD I RESJO1 /GET ADDRESS OF JOB DATA AREA 4621 36127 3561 DCA I CJOBDA /AND SAVE IN FIELD 1 4622 36130 6201 CDF 4623 36131 1110 TAD CLOCK /SUBTRACT THE CLOCKS STILL PENDING ON LEVEL 2 4624 36132 7040 CMA 4625 36133 3043 DCA JOBTIM /THE NET RESULT IS ZERO TICKS WHEN WE ACTUALLY START HIM/HER 4626 36134 3104 DCA L2SV0 /SET PC=0 IN ANTICIPATION OF PHANTOMS 4627 36135 1160 TAD JOB /IS IT A PHANTOM? 4628 36136 0142 AND C0600 4629 36137 7640 SZA CLA 4630 36140 5716 JMP I RESJO0 /YES; WE'RE RESTORED! 4631 4632 / 4633 / NOW RESTORE THE EAE REGISTERS IF THEY EXIST 4634 / 4635 4636 IFZERO EAE-20 < 4637 IFZERO CPU-2 < /PDP-8E 4638 GETJTW /PICK UP SC (AC5:9), THE MODE + GT FLAG IN AC10 + 11 4639 JOBEAE+1 /IF AC10-11=00 THEN MODE=B GT=1 4640 CMA /IF AC10-11=01 THEN MODE=B GT=0 4641 /IF AC10-11=10 THEN MODE=A GT IS ALWAYS 0 IN MODE A 4642 SWAB /SWITCH TO MODE B AND LOAD THE MQ 4643 MQA LSR /SHIFT INTO THE GT FLAG (SETS TEMPORARILY IF WE WANT MODE A) 4644 1 /MQ IS ALSO COPIED BACK INTO THE AC 4645 CMA RAR /POSITION THE SC FOR LOADING AND PUT THE MODE INTO THE LINK 4646 ACS /AC LOADS SC, AC IS CLEARED 4647 SZL /WHICH MODE? 4648 SWBA /"A," SO SWITCH MODES AND CLEAR THE GT FLAG 4649 > 4650 IFNZRO CPU-1 < /SORRY - THE PDP-8 CAN'T RESTORE ITS STEP COUNTER 4651 IFNZRO CPU-2 < / PDP-8/I AND PDP-12 4652 GETJTW /PICK UP SC 4653 JOBEAE+1 4654 CMA /COMPLEMENT AND STORE FOR 4655 DCA .+2 / OLD-STYLE EAE 4656 SCL /LOAD SC 4657 0 >>> /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 109 4658 4659 IFZERO MQREG-1 < 4660 GETJTW /RESTORE MQ 4661 JOBEAE 4662 MQL > 4663 4664 36141 1347 TAD RESJO1 4665 36142 4574 GETJTA /GEET ADDRESS OF PC IN JOB DATA AREA 4666 36143 0011 JOBREG /MOVE PC, LINK, AC TO LEVEL 2 REGISTERS 4667 36144 3347 DCA RESJO1 4668 36145 4567 BLT 4669 36146 6211 DATFLD 4670 36147 0000 RESJO1, 0 4671 36150 6201 UDFCDF, CDF 4672 36151 0104 L2SV0 4673 36152 7775 -3 4674 36153 1103 TAD L2SF 4675 36154 0137 AND C0070 4676 36155 1350 TAD UDFCDF 4677 36156 3151 DCA UUDF /SET UP IN CASE OF USER INTERRUPT 4678 36157 2105 ISZ L2SVLK /DID HE JUST TYPE CONTROL C? 4679 36160 5716 JMP I RESJO0 /ALL RESTORED 4680 36161 3106 DCA L2SA /YES - MAKE SURE HIS/HER AC AND LINK ARE CLEARED 4681 36162 5716 JMP I RESJO0 4682 4683 IFNZRO DC08A < 4684 36163 6212 ANSWER, CIF DATFLD-1 /DISPATCH TO FIELD 1 TO ANSWER PHONE 4685 36164 5765 JMP I .+1 4686 36165 2401 DFRING >/END D689 4687 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 110 4688 4689 6200 *6200 4690 4691 /SERVICE ALL AC TRANSFER OUTPUT DEVICES (TELEPRINTERS, PAPER TAPE PUNCH, AND LINE PRINTER) 4692 4693 /IF FILLER CHARACTERS ARE NEEDED, THE NEXT 3 WORDS MUST BE PATCHED ACCORDING TO YOUR NEEDS 4694 /THE VALUE OF DEVTBL IS ASSEMBLED HERE FOR YOUR CALCULATING CONVENIENCE 4695 36200 2740 FILHI, DEVTBL /-(DEVTBL+2*(KXX+1)) WHERE KXX IS THE HIGHEST LINE REQUIRING FILLER CHARACTERS 4696 36201 0000 FILLO, 0 /2 TIMES NUMBER OF LINES REQUIRING FILLER CHARACTERS 4697 36202 0000 FILLC, 0 /-(ASCII CHAR.) TO LOOK FOR - 7 BITS ONLY (CR=7763; LF=7766) 4698 4699 36203 6413 TTIMEA, TTIME 4700 4603 JMSTIM= JMS I TTIMEA 4701 36204 7742 CONCNT, -NULINE-3 4702 IFNZRO DC08A 4703 36205 2364 T8OUT> /PASS OUTPUT CHARACTER TO DC08A 4704 6206 *6206 4705 36206 2340 DEVOUT, OUTDIF 4706 0002 CONREG= C0200 4707 36207 0330 CONDEV, SKPTP+1 4708 36210 7566 TTOFLA, TTOFLG 4709 36211 0040 CONLPF, JSLPT 4710 36212 0014 C0014, 14 4711 IFNZRO OUTREG-200 4712 4713 36213 3502 CONOUT, DCA I SETFLG /CLEAR SCHEDULER FLAG 4714 36214 6001 ION 4715 36215 2610 ISZ I TTOFLA /SHOW THAT OUTPUT IS BEING SERVICED 4716 36216 6211 DATFLD 4717 36217 1002 TAD CONREG 4718 36220 3003 DCA WS0 /OUTPUT REGISTER TABLE POINTER FOR OUTPUT SCAN 4719 36221 1204 TAD CONCNT 4720 36222 3004 DCA WS1 /NUMBER OF LINES TO CHECK + PUNCH & LINE PRINTER 4721 36223 1403 CONOU0, TAD I WS0 4722 36224 7710 TTIMER, SPA CLA /DOES THIS DEVICE HAVE A REQUEST? 4723 36225 5240 JMP CONOU2 /YES 4724 36226 2003 CONOU1, ISZ WS0 /BUMP POINTER 4725 36227 2004 ISZ WS1 /AND THE COUNT 4726 36230 5223 JMP CONOU0 4727 36231 1246 TAD CONSKP /RESTOORE THE NORMAL INSTRUCTION 4728 36232 3224 DCA TTIMER 4729 36233 7240 STA 4730 36234 6663 LSRP /LP08 OR LE8 ERROR? 4731 36235 6665 LIE /OK - TURN ON INTERRUPT ENABLE 4732 36236 5637 JMP I .+1 4733 36237 2015 CONEXT 4734 4735 36240 4355 CONOU2, JMS CONGET /FIND HIS/HER DDB 4736 36241 3133 DCA CONDDB 4737 36242 1533 TAD I CONDDB /GET OUTPUT STATUS 4738 36243 7510 SPA 4739 36244 5365 JMP CONOU9 /HE HAS TYPED ^S 4740 36245 7006 RTL 4741 36246 7710 CONSKP, SPA CLA 4742 36247 5333 JMP CONJAM /SPECIAL CHARACTERS 4743 36250 1133 CONOU3, TAD CONDDB 4744 36251 4507 FETCH /GET A CHARACTER /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 111 4745 36252 5365 JMP CONOU9 /BUFFER EMPTY 4746 36253 3031 CONOU4, DCA TTCHAR 4747 36254 1031 TAD TTCHAR /CHECK FOR CARRIAGE RETURN (FOR SERIAL LA30'S @ 300 BAUD) 4748 36255 0146 AND C0177 /LET'S KEEP DAWNWOOD JUNIOR HIGH HAPPY 4749 36256 1202 TAD FILLC 4750 36257 7640 SZA CLA 4751 36260 5275 JMP CONOU5 /NORMAL CHARACTER 4752 36261 1132 TAD CONDBA 4753 36262 1200 TAD FILHI /HI LINE LIMIT FOR FILLERS 4754 36263 7100 CLL 4755 36264 1201 TAD FILLO /LO LINE LIMIT FOR FILLERS 4756 36265 7620 SNL CLA 4757 36266 5275 JMP CONOU5 /NO FILLERS FOR THIS LINE 4758 36267 1133 TAD CONDDB 4759 36270 1141 TAD C0005 4760 36271 3150 DCA WS2 /POINTER TO DDB CHARACTER COUNT 4761 36272 7130 STL RAR 4762 36273 1550 TAD I WS2 /INDICATE THE NEED FOR FILLERS 4763 36274 3550 DCA I WS2 4764 36275 6002 CONOU5, IOF 4765 36276 1403 TAD I WS0 /WHAT'S THE HARDWARE DOING? 4766 36277 7006 RTL 4767 36300 7620 SNL CLA /HARDWARE BUSY FLAG IN THE LINK 4768 36301 5307 JMP CONOU6 /NOTHING - SEND TO IT 4769 36302 1031 TAD TTCHAR 4770 36303 7004 RAL /SET THE CHARACTER READY FLAG 4771 36304 6001 CONOU8, ION 4772 36305 3403 DCA I WS0 /NEW LINE STATUS 4773 36306 5226 JMP CONOU1 /CHECK NEXT LINE 4774 36307 1004 CONOU6, TAD WS1 4775 36310 7001 IAC 4776 36311 7440 SZA /LINE PRINTER? 4777 36312 5342 JMP CONOU7 /NO - EITHER TTY OR PTP 4778 36313 6665 LIE /DISABLE LS08/LS8E INTERRUPTS 4779 36314 6667 LCP /DISABLE LP08/LE8 INTERRUPTS 4780 36315 6001 ION 4781 36316 1211 TAD CONLPF 4782 36317 4502 JMS I SETFLG /SET THE LINE PRINTER FLAG FOR THE USER 4783 36320 1031 TAD TTCHAR 4784 36321 5327 JMP CONLP2 4785 36322 1133 CONLP1, TAD CONDDB 4786 36323 4507 FETCH /NO - GET ANOTHER CHARARCTER FOR THE LINE PRINTER 4787 36324 5365 JMP CONOU9 /LINE PRINTER BUFFER IS EMPTY 4788 36325 6661 LSF /IS IT READY FOR THE NEXT CHARACTER ALREADY? 4789 36326 5253 JMP CONOU4 /NO - JUST TUCK THIS ONE AWAY FOR AN INTERRUPT TO TAKE 4790 36327 6666 CONLP2, LPC 4791 36330 7332 STL CLA RTR 4792 36331 3403 DCA I WS0 /REMEMBER THE HHARDWARE IS BUSY 4793 36332 5322 JMP CONLP1 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 112 4794 4795 36333 1533 CONJAM, TAD I CONDDB 4796 36334 0036 AND C0037 /REMOVE THE JAM REQUEST 4797 36335 3533 DCA I CONDDB 4798 36336 1035 TAD C0007 /BELL? 4799 36337 7430 SZL 4800 36340 1212 TAD C0014 /NO - "XOFF" 4801 36341 5253 JMP CONOU4 4802 4803 36342 1207 CONOU7, TAD CONDEV 4804 36343 3350 DCA CONTLS 4805 36344 1750 TAD I CONTLS 4806 36345 1141 TAD C0005 /CONSTRUCT TLS, PLS, OR "JMP T8OUT" 4807 36346 3350 DCA CONTLS 4808 36347 1031 TAD TTCHAR 4809 36350 0000 CONTLS, .-. /TLS, PLS, OR "JMP T8OUT" 4810 36351 7332 STL CLA RTR /AC=2000 4811 36352 6001 ION 4812 36353 3403 DCA I WS0 4813 36354 5250 JMP CONOU3 /GET ANOTHER CHARACTER 4814 4815 36355 0000 CONGET, 0 4816 36356 1003 TAD WS0 4817 36357 7124 STL RAL /TIMES 2 PLUS 1 4818 36360 1206 TAD DEVOUT 4819 36361 3132 DCA CONDBA /DEVTBL POINTER 4820 36362 1532 TAD I CONDBA /IS THERE A DDB FOR THIS DEVICE? 4821 36363 7440 SZA 4822 36364 5755 JMP I CONGET 4823 36365 7350 CONOU9, CLL STA RAR 4824 36366 6202 CIF /NO INTERRUPTS 4825 36367 0403 AND I WS0 4826 36370 3403 DCA I WS0 /CLEAR THE REQUEST FLAG 4827 36371 1532 TAD I CONDBA /DOES HE EXIST? 4828 36372 7450 SNA 4829 36373 5226 JMP CONOU1 /NO - SO WE'RE FINISHED 4830 36374 3015 DCA AXS1 4831 36375 1415 TAD I AXS1 /JOB 4832 36376 7640 SZA CLA 4833 36377 5226 JMP CONOU1 /STILL DEFINED 4834 36400 3532 DCA I CONDBA /CLEAR HIM/HER FROM DEVTBL 4835 36401 1133 TAD CONDDB /TIME TO RELEASE THE DDB 4836 36402 6201 CDF 4837 36403 4576 RETBLK 4838 36404 6211 DATFLD 4839 36405 7240 STA 4840 36406 1015 TTIME2, TAD AXS1 /ADDRESS OF DDB 4841 36407 4651 JMS I CONCLR /FLUSH OUT BUFFER 4842 36410 3403 DCA I WS0 4843 36411 5612 JMP I .+1 4844 36412 6240 CONOU2 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 113 4845 4846 TOFA1, 4847 36413 0000 TTIME, 0 4848 36414 0040 AND C1000 4849 36415 7740 C7740, SZA SMA CLA /SMA HERE TO MAKE CONSTANT 4850 36416 5227 JMP TTIME1 /OOPS! 4851 36417 6202 CIF /NO INTERRUPTS 4852 36420 1403 TAD I WS0 4853 36421 7540 SZA SMA /REQUEST OR INACTIVE? 4854 36422 1040 TAD C1000 /NO - SET TIMER BIT 4855 36423 7500 SMA /HOW SHALL WE EXIT? 4856 36424 2213 ISZ TTIME /SKIP - HE'S CURRENTLY ACTIVE 4857 36425 3403 DCA I WS0 /SAVE UPDATED STATUS 4858 36426 5613 JMP I TTIME /AND AWAY 4859 36427 4646 TTIME1, JMS I CONGEA /HUNG - FIND HIS/HER DDB 4860 36430 3015 DCA AXS1 4861 36431 4647 JMS I CONSEA /WAKE HIM/HER UP 4862 36432 7126 STL RTL 4863 36433 1004 TAD WS1 4864 36434 7710 SPA CLA /WHICH DEVICE IS IT? 4865 36435 5206 JMP TTIME2 /TELEPRINTER 4866 36436 1415 TAD I AXS1 /JOB OWNING DEVICE 4867 36437 7450 SNA 4868 36440 5205 JMP TTIME2-1 /NO JOB, HUNG -- LET'S GET RID OF HIS/HER BUFFER!! 4869 36441 6201 CDF 4870 36442 4463 ERROR /PASS THE ERROR TO HIM/HER 4871 36443 0006 HUNGDV 4872 36444 6211 DATFLD 4873 36445 5650 JMP I CONO1A /TRY AGAIN NOW 4874 4875 36446 6355 CONGEA, CONGET 4876 36447 6701 CONSEA, CONSET 4877 36450 6226 CONO1A, CONOU1 4878 36451 6642 CONCLR, CLRBUF 4879 4880 TOFT1, 4881 36452 0000 TOFSET, 0 /ONLY CALLED BY "TOF 4882 36453 1257 TAD TOF 4883 36454 7710 SPA CLA /CALLED FROM INPUT OR OUTPUT HANDLER? 4884 36455 4647 JMS I CONSEA /SET OUTPUT FLAGS 4885 36456 5652 JMP I TOFSET /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 114 4886 4887 /RETRIEVE A CHARACTER FROM LINKED BUFFER 4888 /CALL: DDB ADDRESS IN AC 4889 / JMS TOF 4890 / RETURN BUFFER EMPTY 4891 / RETURN CHARACTER IN AC 4892 4893 36457 0000 TOF, 0 4894 36460 1141 TAD C0005 /INDEX TO COUNT 4895 36461 3213 DCA TOFA1 4896 36462 1613 TAD I TOFA1 4897 36463 7450 SNA 4898 36464 5657 JMP I TOF /ALREADY EMPTY 4899 36465 2257 ISZ TOF /SHOW SUCCESS 4900 36466 7510 SPA 4901 36467 5344 JMP TOF3 /GENERATE A FILLER 4902 36470 1215 TAD C7740 4903 36471 7450 SNA 4904 36472 4252 JMS TOFSET /TIME TO SET STR1 BIT 4905 36473 1036 TAD C0037 /AC NOW = COUNT -1 4906 36474 7450 SNA 4907 36475 5347 JMP TOF4 /THIS WILL BE THE LAST CHARACTER 4908 36476 3613 TOF0, DCA I TOFA1 4909 36477 2213 ISZ TOFA1 /POINT TO EMPTY COUNT 4910 36500 2613 ISZ I TOFA1 /ANY LEFT IN THIS BLOCK? 4911 36501 5314 JMP TOF1 /MUST BE 4912 36502 1370 TAD TC7766 4913 36503 3613 DCA I TOFA1 /RESET THE EMPTY COUNT 4914 36504 2213 ISZ TOFA1 /EMPTY BLOCK 4915 36505 1613 TAD I TOFA1 4916 36506 6201 CDF 4917 36507 4576 RETBLK /RETURN THE EMPTY BLOCK 4918 36510 6211 DATFLD 4919 36511 3613 DCA I TOFA1 /LINK TO NEXT BLOCK 4920 36512 1370 TAD TC7766 4921 36513 5316 JMP TOF1+2 4922 36514 1613 TOF1, TAD I TOFA1 /GET THE COUNT TO DETERMINE POSITION WITHIN THE BLOCK 4923 36515 2213 ISZ TOFA1 /POINT TO EMPTY BLOCK 4924 36516 1033 TAD C0003 4925 36517 7500 SMA /UNPACK? 4926 36520 7124 STL RAL /YES (MULT BY 2 THEN ADD 1) FUDGE POSITION 4927 36521 7510 SPA /UNPACK? 4928 36522 7161 STL CIA /NO - MAKE OFFSET POSITIVE - SET LINK TO INDICATE NO UNPACKING NEEDED 4929 36523 1613 TAD I TOFA1 /ADD OFFSET TO EMPTY BLOCK POINTER 4930 36524 3213 DCA TOFA1 4931 36525 1613 TAD I TOFA1 /GET CHARACTER; OR AT LEAST PART OF IT 4932 36526 7430 SZL /UNPACK? 4933 36527 5342 JMP TOF2 /NO 4934 36530 0134 AND C7400 /SAVE PERTINENT BITS 4935 36531 3252 DCA TOFT1 4936 36532 2213 ISZ TOFA1 4937 36533 1613 TAD I TOFA1 /GET THE OTHER HALF OF THE CHARACTER 4938 36534 0134 AND C7400 /THROW AWAY THE JUNK 4939 36535 7112 CLL RTR /START MOVING IT INTO PLACE 4940 36536 7012 RTR 4941 36537 1252 TAD TOFT1 /GET THE M.S. BITS 4942 36540 7012 RTR /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 115 4943 36541 7012 RTR /THAT SHOULD DO IT 4944 36542 0140 TOF2, AND C0377 /CLEAR ANY JUNK LEFT OVER 4945 36543 5657 JMP I TOF /AND AWAY 4946 36544 1156 TOF3, TAD C0400 /INCR. FILLER COUNT 4947 36545 3613 DCA I TOFA1 4948 36546 5657 JMP I TOF /EXIT WITH FILLER (NULL) CHARACTER 4949 36547 4252 TOF4, JMS TOFSET /SET THE STR1 BIT FOR THIS DEVICE 4950 36550 7240 STA 4951 36551 1213 TAD TOFA1 4952 36552 3252 DCA TOFT1 /POINTS TO FILL BLOCK POINTER 4953 36553 1652 TAD I TOFT1 4954 36554 6201 CDF 4955 36555 4576 RETBLK /RETURN THE LAST BLOCK OF THE BUFFER 4956 36556 6211 DATFLD 4957 36557 0257 AND TOF 4958 36560 7700 SMA CLA /CALLED FROM INPUT OR OUTPUT HANDLER? 4959 36561 1003 TAD WS0 /INPUT - CHECK FOR NON-ZERO BREAK-MASK 4960 36562 7650 SNA CLA 4961 36563 5366 JMP TOF5 /NO "JSDEL" TO CLEAR 4962 36564 1037 TAD C0100 4963 36565 4771 JMS I TOFCLR /CLEAR JSDEL - THIS IS THE LAST CHARACTER 4964 36566 3652 TOF5, DCA I TOFT1 /CLEAR FILL POINTER SO WE KNOW WE'RE EMPTY 4965 36567 5276 JMP TOF0 4966 4967 36570 7766 TC7766, 7766 4968 36571 1562 TOFCLR, CLSTR1 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 116 4969 4970 /ROUTINE TO ALLOW SI & FIP TO CLEAR BUFFERS BY WAY OF FIELD 0 ROUTINE 4971 36572 0000 SICLR, 0 4972 36573 4651 JMS I CONCLR 4973 36574 6223 CIF CDF 20 /BACK TO FIELD 2 4974 36575 5772 JMP I SICLR 4975 4976 /CLEAR STATUS 4977 36576 4476 UCLS, GETJTW /ADDRESS OF STR0 TO JOBSWA 4978 36577 0000 JOBSTS 4979 36600 7346 CLA CLL CMA RTL /-3 IN AC 4980 36601 3003 DCA WS0 4981 36602 1222 TAD C2407 /DON'T LET HIM/HER MESS UP STR0 4982 36603 7410 SKP 4983 36604 7240 Y1, STA /LET HIM/HER ANYTHING IN STR1 AND D.S.R. 4984 36605 4150 UDF /UP TO USER FIELD 4985 36606 0506 AND I L2SA /GET BITS TO CLEAR 4986 36607 7040 CMA 4987 36610 6211 DATFLD 4988 36611 0405 AND I JOBSWA /CLEAR THEM 4989 36612 3405 DCA I JOBSWA /SAVE NEW VALUE 4990 36613 2106 ISZ L2SA /BUMP POINTER 4991 36614 0020 C0020, 20 /NOP 4992 36615 2005 ISZ JOBSWA /BUMP POINTER 4993 36616 2003 ISZ WS0 /COUNT, 3 STATUS WORDS TO CLEAR 4994 36617 5204 JMP Y1 4995 36620 3106 DCA L2SA /CLEAR HIS/HER AC 4996 36621 5461 UUOEXT 4997 36622 2407 C2407, JSEREN JSPEEK UUOERF SWPRER SWPWER DSKERR HUNGDV 4998 4999 5000 /RETURN CONTENT OF STATUS WORD IN AC 5001 /CALL TAD POINTER TO JOB STATUS ADDRESS 5002 / GETJTI 5003 / RELATIVE ADDR OF WORD 5004 / RETURN (ADDRESS OF WORD IN JOBSWA) 5005 5006 CLR0, 5007 36623 0000 GETJI0, 0 5008 36624 6201 CDF 5009 36625 3005 DCA JOBSWA /SAVE POINTER TO JOB STATUS 5010 36626 1623 TAD I GETJI0 /GET POSITION IN LIST 5011 36627 3232 DCA .+3 /SAVE IT 5012 36630 1005 TAD JOBSWA /NOW GET ADDRESS OF THIS ENTRY 5013 36631 4574 GETJTA 5014 36632 0000 0 5015 36633 3005 DCA JOBSWA /SAVE IT 5016 36634 6211 DATFLD 5017 36635 7430 SZL /IF LINK=0 THERE'S NOTHING TO GET 5018 36636 1405 TAD I JOBSWA /GET CONTENTS OF THAT ADDRESS 5019 36637 6201 CDF 5020 36640 2223 ISZ GETJI0 /INDEX RETURN 5021 36641 5623 JMP I GETJI0 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 117 5022 5023 /RETURN ALL BLOCKS OF LINKED BUFFER TO FREE CORE (EXCEPT DDB) 5024 /CLEAR ENTRIES IN DDB SO WE KNOW IT'S EMPTY 5025 36642 0000 CLRBUF, 0 5026 36643 7450 SNA 5027 36644 5642 JMP I CLRBUF /OOPS! 5028 36645 1034 TAD C0004 /POINT TO WORD 4 (FILL POINTER 5029 36646 3223 DCA CLR0 5030 36647 1623 TAD I CLR0 5031 36650 7650 SNA CLA 5032 36651 5642 JMP I CLRBUF /BUFFER ALREADY EMPTY 5033 36652 3623 DCA I CLR0 /CLEAR FILL POINTER 5034 36653 2223 ISZ CLR0 5035 36654 3623 DCA I CLR0 /CLEAR CHARACTER COUNT 5036 36655 2223 ISZ CLR0 5037 36656 2223 ISZ CLR0 5038 36657 1623 TAD I CLR0 /EMPTY BLOCK POINTER 5039 36660 6201 CDF 5040 36661 4576 RETBLK /RETURN A BLOCK TO FREE CORE 5041 36662 7440 SZA 5042 36663 5261 JMP .-2 /DELETE ANOTHER BLOCK 5043 36664 6211 DATFLD 5044 36665 3623 DCA I CLR0 /CLEAR THE EMPTY BLOCK POINTER 5045 36666 5642 JMP I CLRBUF 5046 5047 5048 5049 5050 5051 36667 1037 SCHNUL, TAD C0100 /RUN NULL JOB IN USER MODE 5052 36670 3103 DCA L2SF /FIELD 0; USER MODE 5053 36671 1300 TAD SCHNJA 5054 36672 3104 DCA L2SV0 5055 36673 2277 ISZ NULAC /BUMP NULL JOB'S AC 5056 36674 1277 TAD NULAC 5057 36675 3106 DCA L2SA /RESTORE IT 5058 36676 5467 EXIT /OFF TO NULL JOB 5059 5060 36677 0000 NULAC, 0 5061 36700 5200 SCHNJA, NULJOB /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 118 5062 5063 /ROUTINE TO SET EITHER JSTEL, JSLPT, OR JSPTP IN STR1 5064 5065 36701 0000 CONSET, 0 5066 36702 7326 CLA STL RTL 5067 36703 1004 TAD WS1 /FROM POSITION IN OUTREG DETERMINE DEVICE FLAG POSITION 5068 36704 7450 SNA 5069 36705 5311 JMP .+4 /IT'S THE PUNCH 5070 36706 7700 SMA CLA /SKIP IF TELEPRINTER 5071 36707 1214 TAD C0020 /IT'S THE LINE PRINTER 5072 36710 1375 TAD CC0014 5073 36711 1034 TAD C0004 5074 36712 4502 JMS I SETFLG /SET THE APPROPRIATE BIT IN STR1 5075 36713 5701 JMP I CONSET 5076 5077 /QUEUE DISC REQUEST 5078 /CALL TAD ADDRESS OF TRANSFER BLOCK 5079 / JMS DSQUE 5080 / RETURN 5081 5082 0032 DSQFLD= C0002 /FILPIF 5083 5084 36714 0000 DSQUE, 0 5085 36715 3332 DCA DSQUE1 /SAVE ADDRESS OF PARAMETER BLOCK 5086 36716 1332 TAD DSQUE1 /NOW GET POINTER TO WORD WITH FIELD & FILE DATA 5087 36717 1032 TAD DSQFLD 5088 36720 3370 DCA DSQUE2 /SAVE POINTER 5089 36721 6211 DATFLD 5090 36722 1770 TAD I DSQUE2 /GET FIELD # (BITS 7-9) AND FILE # (BITS 10-11) 5091 36723 0036 AND C0037 /USE THIS VALUE AS DSUTBL INDEX 5092 36724 1164 TAD DSUTBA 5093 36725 3370 DCA DSQUE2 /SAVE POINTER TO DSUTBL 5094 36726 1332 TAD DSQUE1 /GET PARAMETER ADDRESS 5095 36727 3770 DCA I DSQUE2 /SAVE IN DSUTBL 5096 36730 6201 UPEEK3, CDF /AND EXIT 5097 36731 5714 JMP I DSQUE 5098 5099 /SUBROUTINE TO CHECK FOR PRIVILEGE CONDITION FOR USER DOING UUO 5100 /PRIVILEGE BITS ARE SET EITHER BY THE ACCOUNT NUMBER BEING LESS THAN 5101 /FOUR (FIP) OR BY A REQUEST TO RUN A LIBRARY PROGRAM USING R, KJOB, 5102 /SYSTAT, OR LOGOUT. THE LATTER BIT IS SET BY SI, AND CLEARED EVERY 5103 /TIME THAT SI IS ENTERED. 5104 5105 DSQUE1, 5106 36732 0000 PRIV, 0 5107 36733 4476 GETJTW 5108 36734 0000 JOBSTS /GET STR0 5109 36735 0142 AND C0600 /IS EITHER PRIVILEGE BIT SET? 5110 36736 7640 SZA CLA 5111 36737 5732 JMP I PRIV /YES, OK 5112 36740 5741 JMP I .+1 /NO, ERROR; INVALID IOT 5113 36741 5144 UUOERR /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 119 5114 5115 /LOGOUT IS A PRIVILEGED IOT, UNLESS THE AC=0 5116 5117 36742 1106 ULOGO, TAD L2SA /IS AC=0? 5118 36743 7640 SZA CLA 5119 36744 4332 JMS PRIV /NO - CHECK FOR PRIVILEGE 5120 36745 2015 ISZ AXS1 /FUDGE SO AXS1 WILL LEAD TO A 0 5121 36746 5747 JMP I .+1 /NOW JUMP DIRECTLY TO THE NON-RESIDENT 5122 36747 2246 UUO6 /UUO CODE 5123 5124 /PEEK IS A PRIVILEGED IOT 5125 36750 4332 UPEEK, JMS PRIV /MAKE SURE A PRIVILEGE BIT IS SET 5126 36751 7240 STA /BACK UP HIS/HER AC 5127 36752 1106 TAD L2SA 5128 36753 3015 DCA AXS1 /BECAUSE OF AUTO-INDEX 5129 36754 4150 UDF 5130 36755 1415 TAD I AXS1 /GET CORE-FIELD 5131 36756 0113 AND C0010 /LET HIM/HER SEE FIELDS 0,1 5132 /COULD PROBABLY LET HIM/HER SEE MORE, BUT HAVE 5133 /TO WORRY ABOUT NON-EXISTENT CORE. 5134 36757 1330 TAD UPEEK3 /MAKE A CDF 5135 36760 3370 DCA UPEEK1 5136 36761 7240 STA 5137 36762 1415 TAD I AXS1 /BEGINNING MONITOR ADDRESS-1 5138 36763 3016 DCA AXS2 5139 36764 1415 TAD I AXS1 /BEGINNING USER ADDRESS 5140 36765 3003 DCA WS0 5141 36766 1415 TAD I AXS1 /MINUS HOW MANY WORDS 5142 36767 3106 DCA L2SA 5143 DSQUE2, 5144 36770 0000 UPEEK1, .-. /CDF TO MONITOR FIELD 5145 36771 1416 TAD I AXS2 /GET WORD 5146 36772 4150 UDF /USER DATA FIELD 5147 36773 3403 DCA I WS0 /GET RID OF WORD 5148 36774 2003 ISZ WS0 5149 36775 0014 CC0014, 14 /NOP 5150 36776 2106 ISZ L2SA /THROUGH? 5151 36777 5370 JMP UPEEK1 /NO 5152 37000 5461 UUOEXT /YES -- AND HIS/HER AC=0!! 5153 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 120 5154 5155 7001 *CORTBL 5156 37001 2000 LOCK /DATFLD 5157 37002 2000 LOCK /FIELD 2 5158 37003 2000 LOCK /FIELD 3 5159 37004 2000 LOCK /FIELD 4 5160 37005 2000 LOCK /FIELD 5 5161 37006 2000 LOCK /FIELD 6 5162 37007 2000 LOCK /FIELD 7 5163 5164 /THE ABOVE ARE UNLOCKED BY INIT AS A FUNCTION OF # USER FIELDS 5165 5166 5167 7010 *L2QTB 5168 37010 0000 ZBLOCK 20 /LEVEL 2 QUEUE 37011 0000 37012 0000 37013 0000 37014 0000 37015 0000 37016 0000 37017 0000 37020 0000 37021 0000 37022 0000 37023 0000 37024 0000 37025 0000 37026 0000 37027 0000 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 121 5169 5170 /COMBINED RESIDENT IOTS 5171 37030 6040 UUOTBL, 6040 /TELEPRINTER 5172 37031 6660 6660 /LPT 5173 37032 6030 6030 /KEYBOARD 5174 37033 6010 6010 /READER 5175 37034 6020 6020 /PUNCH 5176 37035 6500 6500 /RESERVED FOR FUTURE USE 5177 37036 0000 0 5178 5179 /UNCOMBINED RESIDENT IOTS 5180 5181 37037 6603 6603 /RFILE 5182 37040 6605 6605 /WFILE 5183 37041 6200 6200 /CKS - CHECK STATUS 5184 37042 6405 6405 /CLS - CLEAR STATUS 5185 37043 6400 6400 /KSB - SET KEYBOARD BREAK 5186 37044 6401 6401 /SBC - SELECTIVE BUFFER CLEAR 5187 37045 6402 6402 /DUP - DUPLEX TELETYPE CONSOLE 5188 37046 6403 6403 /UND - UNDUPLEX TTY 5189 37047 6411 6411 /URT - USER RUN TIME 5190 37050 6412 6412 /TOD - TIME OF DAY 5191 37051 6413 6413 /RCR - RETURN CLOCK RATE 5192 37052 6414 6414 /DATE 5193 37053 6415 6415 /SYN - QUANTUM SYNCHRONIZATION 5194 37054 6416 6416 /STM - SET TIMER 5195 37055 6417 6417 /SRA - SET RESTART ADDRESS 5196 37056 6617 6617 /ACT - RETURN ACCOUNT NUMBER 5197 37057 6420 6420 /TSS - SKIP ON TSS/8 5198 37060 6421 6421 /USE - USER 5199 37061 6422 6422 /CON - USER CONSOLE 5200 37062 6423 6423 /PEEK - LOOK IN MONITOR CORE 5201 37063 6430 6430 /SSW - SET SWITCH REGISTER 5202 37064 6431 6431 /SEA - SET ERROR ADDRESS 5203 37065 6614 6614 /SIZE 5204 37066 6004 6004 /GTF - GET FLAGS ( LINK AND GT ONLY ) 5205 37067 6005 6005 /RTF - RESTORE FLAGS (LINK AND GT ONLY) 5206 37070 6006 6006 /SGT - SKIP ON EAE GT FLAG 5207 37071 6764 6764 /DTXA - DECTAPE READ OR WRITE 5208 37072 6771 6771 /DTSF - DECTAPE SKIP 5209 37073 6772 6772 /RDS - READ DEVICE STATUS REGISTER (DT, RK, & CDR) 5210 37074 6773 6773 /DTSF RDS - MICROCODED 5211 37075 6743 6743 /DLAG - RK05 READ OR WRITE 5212 37076 6632 6632 /RCRA - READ CARD ALPHA 5213 37077 6634 6634 /RCRB - READ CARD BINARY 5214 37100 6636 6636 /RCRC - READ CARD COMPRESSED 5215 37101 6615 6615 /LOGOUT - MUST BE LAST IN GROUP, SEE ULOGO FOR DETAILS 5216 37102 0000 0 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 122 5217 5218 /NON-RESIDENT IOTS 5219 5220 5221 37103 6440 6440 /ASD - ASSIGN DEVICE 5222 37104 6442 6442 /REL - RELEASE DEVICE 5223 5224 37105 6601 6601 /OPEN - OPEN FILE 5225 37106 6602 6602 /CLOS - CLOSE FILE 5226 37107 6600 6600 /REN - RENAME FILE 5227 37110 6604 6604 /PROT - PROTECT FILE 5228 5229 37111 6610 6610 /CRF - CREATE FILE 5230 37112 6611 6611 /EXT - EXTEND FILE 5231 37113 6612 6612 /RED - REDUCE FILE 5232 37114 6406 6406 /SEGS - RETURN NUMBER OF FREE DISK SEGMENTS 5233 37115 0000 0 5234 5235 /LONG NON-RESIDENT IOTS 5236 5237 37116 6613 6613 /FINF 5238 37117 6616 6616 /WHO 5239 37120 0000 0 5240 5241 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 123 5242 5243 /MICRO-CODED RESIDENT IOT DISPATCH 5244 5245 37121 5000 UUODTB, UTEL /TELEPRINTER 5246 37122 5100 IFNZRO LPT /LINE PRINTER 5247 IFZERO LPT 5248 37123 3451 UKEY /KEYBOARD 5249 37124 1002 UPTR /READER 5250 37125 5106 IFNZRO PUNCH /PUNCH 5251 IFZERO PUNCH 5252 37126 5144 UUOERR /RESERVED FOR FUTURE USE 5253 37127 0000 0 5254 5255 5256 /NON-MICRO-CODED RESIDENT IOT DISPATCH 5257 5258 37130 4400 UFILE 5259 37131 4400 UFILE 5260 37132 5331 UCKS 5261 37133 6576 UCLS 5262 37134 7256 UKSB 5263 37135 4153 USBC 5264 37136 4764 UDUP 5265 37137 4765 UUND 5266 37140 5300 UURT 5267 37141 5316 UTOD 5268 37142 5616 URCR 5269 37143 6113 UDATE 5270 37144 5150 USYN 5271 37145 1437 USTM 5272 37146 7272 USRA 5273 37147 7320 UACC 5274 37150 7213 UTSS 5275 37151 5613 UUSE 5276 37152 6077 UCON 5277 37153 6750 UPEEK 5278 37154 7270 USSW 5279 37155 1375 USEA 5280 37156 5611 USIZE /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 124 5281 5282 IFNZRO CPU&7776 5284 37157 5144 IFZERO CPU&7776 5286 IFZERO CPU-2 5287 37161 5144 IFNZRO CPU-2 5288 IFNZRO TC01 5289 37162 5144 IFZERO TC01 5290 37163 7215 UUOEX2 5291 37164 1153 UDTRB 5292 37165 1151 UDTRBS 5293 IFNZRO RK05 5294 37166 5144 IFZERO RK05 5295 IFNZRO CDR < 5296 UUCDR0+2 5297 UUCDR0+1 5298 IFNZRO CPU&7776 5299 IFZERO CPU&7776 > 5300 37167 5144 IFZERO CDR 5303 37172 6742 ULOGO /LOGOUT - MUST BE FOLLOWED BY A 0 5304 /SEE ULOGO FOR DETAILS 5305 37173 0000 0 5306 5307 /-# ARGUMENTS FOR NON-RESIDENT IOTS 5308 5309 37174 0000 0 /ASD 5310 37175 0000 0 /REL 5311 37176 7772 UFILCT, -6 /OPEN 5312 37177 0000 0 /CLOS 5313 37200 7772 -6 /REN 5314 37201 0000 0 /PROT 5315 37202 7774 -4 /CRF 5316 37203 7774 -4 /EXT 5317 37204 7774 -4 /RED 5318 37205 0000 0 /SEGS 5319 37206 0000 0 5320 37207 7776 -2 /FINF 5321 37210 7776 -2 /WHO 5322 37211 0000 0 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 125 5323 5324 5325 37212 0030 VERNUM 5326 37213 1212 UTSS, TAD .-1 /SKIP ON TSS/8 5327 37214 3106 DCA L2SA /AND RETURN VERSION # IN AC 5328 37215 2104 UUOEX2, ISZ L2SV0 /POSITIVE FLAG TEST EXIT 5329 37216 7000 NOP 5330 5331 /ENTRY FOR UUOEXT 5332 /SETS UP WAIT MASK 1 IF THERE ARE ANY WAIT CONDITIONS FOR STR1 5333 /IF THERE IS NOTHING TO WAIT FOR, WE EXIT BACK TO THE USER 5334 5335 5336 37217 7450 UUOEX1, SNA 5337 37220 5235 JMP UUOEX3 /NO WAIT CONDITIONS 5338 37221 6201 CDF 5339 37222 3003 DCA WS0 /SAVE BITS TO CLEAR 5340 37223 4476 GETJTW /SET UP WAIT MASK 5341 37224 0003 JOBWMK 5342 37225 7201 CLA IAC 5343 37226 1003 TAD WS0 /WAIT ON THIS FLAG+JSWAIT 5344 37227 6211 DATFLD 5345 37230 3405 DCA I JOBSWA /SET WAIT MASK 1 5346 37231 1405 TAD I JOBSWA 5347 37232 4634 JMS I CLEAR1 /CLEAR SAME BITS IN STR1 5348 37233 5577 WAIT 5349 37234 1562 CLEAR1, CLSTR1 5350 5351 37235 6211 UUOEX3, DATFLD 5352 37236 1561 TAD I JOBDAT 5353 37237 7001 IAC 5354 37240 3005 DCA JOBSWA /POINTS TO STR0 5355 37241 1405 TAD I JOBSWA 5356 37242 7700 SMA CLA /STILL RUNNABLE? 5357 37243 5577 WAIT /NO 5358 37244 2005 ISZ JOBSWA 5359 37245 7344 CLL STA RAL /AC=7776 5360 37246 0405 AND I JOBSWA 5361 37247 7001 IAC /MAKE SURE JSWAIT IS SET 5362 37250 3405 DCA I JOBSWA 5363 37251 2005 ISZ JOBSWA 5364 37252 2005 ISZ JOBSWA /POINT TO WAIT MASK 5365 37253 7001 IAC 5366 37254 3405 DCA I JOBSWA /FORCE DUMMY WAIT BIT ONLY 5367 37255 5467 EXIT /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 126 5368 5369 /SET SWITCH REGISTER, RESTART ADD, ERROR ADD, OR KEYBOARD BREAK 5370 5371 0032 UKSBRK= C0002 /DDBBRK 5372 5373 37256 1160 UKSB, TAD JOB 5374 37257 4464 TTYUSE /FIND USER INPUT TTY DDB 5375 37260 1032 TAD UKSBRK 5376 37261 3005 DCA JOBSWA /POINTS TO BREAK MASK IN DDB 5377 37262 1106 TAD L2SA /USER AC 5378 37263 6211 DATFLD 5379 37264 7440 SZA 5380 37265 5301 JMP UKSB1 /HE HAS NEW MASK -- GO PICK IT UP 5381 37266 1405 TAD I JOBSWA /HE WANTS TO READ OLD MASK 5382 37267 5302 JMP UKSB1+1 /GIVE IT TO HIM/HER 5383 37270 1032 USSW, TAD C0002 /SET AC=2 5384 37271 7001 USEA1, IAC /AC=AC+1 5385 37272 1141 USRA, TAD C0005 /AC=AC+5 5386 37273 3275 DCA .+2 /SAVE RELATIVE ADDRESS 5387 37274 4476 GETJTW /GET POINTER 5388 37275 0000 0 /POSITION IN LIST 5389 37276 7200 CLA /WE ONLY WANTED POINTER 5390 37277 1106 TAD L2SA /GET CONTENTS OF USER AC 5391 37300 6211 DATFLD 5392 37301 3405 UKSB1, DCA I JOBSWA /SAVE IN JOB DATA AREA 5393 37302 3106 DCA L2SA 5394 37303 5461 UUOEXT /AND AWAY 5395 5396 5397 37304 7410 RINTA, RINT 5398 37305 2417 CDTIMA, TIMCDR 5399 37306 6671 INTCDR, RCSD 5400 37307 5704 JMP I RINTA /CONTINUE IN INTERRUPT SKIP CHAIN 5401 37310 6674 RCRD /CLEAR CARD DONE FLAG 5402 37311 1705 TAD I CDTIMA 5403 37312 7650 SNA CLA /WERE WE EXPECTING AN INTERRUPT? 5404 37313 5500 DISMIS /NO 5405 37314 3705 DCA I CDTIMA /NO MORE INTERRUPTS ALLOWED - WE FINISHED THIS CARD 5406 37315 1317 TAD .+2 5407 37316 5500 DISMIS /SCHEDULE LEVEL 2 5408 37317 2553 CDL20 5409 /ACCOUNT NUMBER 5410 37320 1106 UACC, TAD L2SA 5411 37321 4330 JMS JOBCHK /SEE IF IT'S A VALID JOB 5412 37322 5326 JMP UACC0 /IT WASN'T - RETURN A ZERO 5413 37323 1044 TAD JOBTBA 5414 37324 4477 GETJTI /GET THE ACCOUNT NUMBER OF THE JOB 5415 37325 0016 JOBACC 5416 37326 3106 UACC0, DCA L2SA /RETURN IT TO HIM/HER 5417 37327 5461 UUOEXT /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 127 5418 5419 IOR1, 5420 37330 0000 JOBCHK, 0 5421 37331 7450 SNA /SPECIFIC JOB? 5422 37332 1160 TAD JOB /NO - HIS/HER OWN JOB 5423 37333 3004 DCA WS1 5424 37334 1004 TAD WS1 5425 37335 7100 CLL 5426 37336 1352 TAD JOBS /IS IT REALLY A JOB? 5427 37337 7620 SNL CLA 5428 37340 1004 TAD WS1 5429 37341 1044 TAD JOBTBA 5430 37342 3005 DCA JOBSWA 5431 37343 6211 DATFLD 5432 37344 1405 TAD I JOBSWA /IS THERE REALLY A JOB? 5433 37345 7650 SNA CLA 5434 37346 5730 JMP I JOBCHK /NO - RETURN WITHOUT SKIP 5435 37347 2330 ISZ JOBCHK 5436 37350 1004 TAD WS1 /JOB NUMBER REQUESTED 5437 37351 5730 JMP I JOBCHK 5438 37352 7753 JOBS, -JOBMAX-1 5439 5440 37353 0000 DTRKHG, 0 5441 37354 4463 ERROR /DECTAPE OR RK05 IS HUNG 5442 37355 0006 HUNGDV /REPORT IT TO THE USER 5443 37356 6213 CIF DATFLD /BACK TO FIELD 1 5444 37357 5753 JMP I DTRKHG 5445 /INCLUSIVE OR 5446 /CALL TAD ADDRESS OF WORD TO SET 5447 / IOR 5448 / BITS TO SET 5449 / RETURN 5450 5451 37360 0000 IOR0, 0 5452 37361 3330 DCA IOR1 /SAVE ADDRESS TO SET 5453 37362 6214 RDF /FIELD TO SET IT IN 5454 37363 1365 TAD .+2 /COMPUTE FIELD SELECT - FOR THAT FIELD 5455 37364 3367 DCA IOR2 /SAVE IT 5456 37365 6201 CDF 5457 37366 1760 TAD I IOR0 /GET BITS TO SET 5458 37367 0000 IOR2, 0 /SET FIELD AGAIN 5459 37370 3367 DCA IOR2 /SAVE THEM 5460 37371 1367 TAD IOR2 5461 37372 7040 CMA 5462 37373 0730 AND I IOR1 /CLEAR THE BITS IF ALREADY SET 5463 37374 1367 TAD IOR2 /NOW SET THEM 5464 37375 3730 DCA I IOR1 /SAVE NEW VALUE 5465 37376 2360 ISZ IOR0 /SKIP ARGUMENT IN CALL 5466 37377 5760 JMP I IOR0 /RETURN 5467 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 128 5468 5469 7400 *7400 5470 IFNZRO DC08A < 5471 5600 JMPDC8= JMP I . /SKIP OVER DC08A VECTORS 5472 37400 7403 .+3 5473 5201 DC8REG= JMP . /SKIP OVER DC08A ACTIVE REGISTERS 5474 37401 7001 IAC 5475 37402 2340 ISZ ACFLG /SWITCH TO OUTPUT SIDE 5476 37403 1207 TAD DCCNT 5477 37404 1010 TAD ACX10 5478 37405 3010 DCA ACX10 /SKIP OVER THE DC08A ENTRIES IN THE TABLE 5479 37406 5254 JMP ACINT1 /BACK TO WORK 5480 37407 0022 DCCNT, DC08A-1 > 5481 7410 *7410 5482 5483 37410 3365 RINT, DCA SRVFLG /CLEAR LEVEL 2 REQUEST FLAG 5484 37411 6211 DATFLD 5485 37412 6011 RSF 5486 37413 5244 JMP ACINT 5487 37414 6012 RRB /GET CHARACTER FROM THE READER 5488 37415 3411 DCA I ACX11 /PUT IT IN THE RING BUFFER 5489 37416 6201 CDF 5490 37417 2243 ISZ RCNT /ENOUGH?? 5491 37420 5225 JMP RINT1 /NO - SEE IF THERE'S STILL ROOM IN THE RING BUFFER 5492 37421 3642 RINT0, DCA I RTIM 5493 37422 6211 DATFLD 5494 37423 7040 CMA 5495 37424 5351 JMP ACINT8 /READER IS LINE # 7777 5496 37425 1372 RINT1, TAD KEYC /IS THERE ENOUGH ROOM LEFT IN THE RING-BUFFER? 5497 37426 1240 TAD RLIM 5498 37427 7700 SMA CLA 5499 37430 5234 JMP RINT2 5500 37431 6014 RFC /KEEP THE READER GOING 5501 37432 7144 CLL CMA RAL /SET TIMER FOR 2 MORE SECONDS 5502 37433 5221 JMP RINT0 5503 37434 1241 RINT2, TAD RL2A 5504 37435 3413 DCA I L2Q /SCHEDULE THE READER TO BE RESTARTED AFTER THE BUFFER HAS BEEN EMPTIED 5505 37436 2365 ISZ SRVFLG /REMEMBER WE WANT LEVEL 2 5506 37437 5221 JMP RINT0 5507 5508 37440 7744 RLIM, -NULINE-1 5509 37441 1045 RL2A, L2PTR1 5510 37442 2415 RTIM, TIMPTR 5511 37443 0000 RCNT, 0 5512 5513 2340 OUTIOT= ISZ ACFLG 5514 5333 ENDIOT= JMP ACINT6 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 129 5515 5516 37444 7344 ACINT, CLL STA RAL /AC=-2 5517 37445 3340 DCA ACFLG /START BY CHECKING FOR INPUT 5518 37446 1375 TAD ACTBLA /ADDRESS OF THE SKIP IOT'S 5519 37447 3010 DCA ACX10 5520 37450 7126 STL RTL 5521 37451 1373 ACINT0, TAD HIPRO 5522 37452 3323 DCA HICNT /SHORT LOOP COUNT TO PROTECT HI-PRIORITY DEVICES 5523 37453 6211 DATFLD 5524 37454 2323 ACINT1, ISZ HICNT 5525 37455 5264 JMP ACINT2-2 5526 37456 4774 JMS I HIPRIA /GO CHECK RK, DT, & CDR 5527 37457 7450 SNA /ANYTHING REQUESTED? 5528 37460 5251 JMP ACINT0 /NO 5529 37461 3413 DCA I L2Q /QUEUE THEIR REQUEST FOR THEM 5530 37462 2365 ISZ SRVFLG /REMEMBER IT 5531 37463 5251 JMP ACINT0 /RE-INITIALIZE THE COUNT 5532 37464 1410 TAD I ACX10 5533 37465 3266 DCA ACINT2 5534 37466 0000 ACINT2, .-. /DEVICE SKIP 5535 37467 5254 JMP ACINT1 /NOT THIS ONE 5536 37470 1266 TAD ACINT2 5537 37471 1141 TAD C0005 /GENERATE READ OR SEND IOT 5538 37472 2340 ISZ ACFLG 5539 37473 5337 JMP ACINT7 /MUST BE A KEYBOARD 5540 37474 3304 DCA ACINT3 /SAVE THE TLS, PLS, OR LPC 5541 37475 1010 TAD ACX10 5542 37476 1376 TAD ACOUT /DETERMINE THE LINE NUMBER 5543 37477 3340 DCA ACFLG /THIS LINE'S OUTPUT REGISTER 5544 37500 1740 TAD I ACFLG 5545 37501 7010 RAR 5546 37502 7420 SNL 5547 37503 5320 JMP ACINT5 /NOTHING WAITING TO GO 5548 37504 0000 ACINT3, .-. 5549 37505 7321 CLA STL IAC 5550 37506 7012 RTR 5551 37507 3740 DCA I ACFLG /HARDWARE BUSY AND REQUEST FLAGS SET 5552 37510 3366 DCA TTOFLG /SCHEDULE LEVEL 2 5553 37511 1013 ACINT4, TAD L2Q /POSITION OF FILL POINTER 5554 37512 1377 TAD L2QBOT /MINUS L2QTB-1 5555 37513 7041 CIA 5556 37514 1365 TAD SRVFLG /DON'T COUNT THE ONES WE JUST PUT IN 5557 37515 7650 SNA CLA /SHOULD WE SCHEDULE LEVEL 2? 5558 37516 1067 TAD EXITA /YES 5559 37517 5500 DISMIS /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 130 5560 5561 37520 7201 ACINT5, CLA IAC 5562 37521 1266 TAD ACINT2 5563 37522 3323 DCA .+1 5564 37523 0000 HICNT, .-. /TCF, PCF, OR LCF 5565 37524 7330 STL CLA RAR /AC=4000 5566 37525 0740 AND I ACFLG 5567 37526 3740 DCA I ACFLG /NO MORE INTERRUPTS EXPECTED FROM THIS LINE 5568 37527 1365 ACEXIT, TAD SRVFLG /ANY REQUESTS? 5569 37530 7640 SZA CLA 5570 37531 5311 JMP ACINT4 /YES - MAKE SURE THEY'RE SCHEDULED 5571 37532 5500 DISMIS /NOTHING SPECIAL 5572 5573 37533 6663 ACINT6, LSRP /LP08/LE8 ERROR? 5574 37534 5327 JMP ACEXIT /NO, MUST BE AN UNDEFINED INTERRUPT 5575 37535 6667 LCP /CLEAR INTERRUPT ENABLE 5576 37536 5327 JMP ACEXIT 5577 5578 37537 3340 ACINT7, DCA ACFLG /SAVE THE KRB IOT 5579 37540 0000 ACFLG, .-. 5580 37541 7450 SNA 5581 37542 5327 JMP ACEXIT /THROW AWAY NULL CHARACTERS 5582 37543 0146 AND C0177 5583 37544 1002 TAD C0200 /FORCE ON THE "PARITY" BIT 5584 37545 3411 DCA I ACX11 /STASH IT IN THE RING BUFFER 5585 37546 1375 TAD ACTBLA 5586 37547 7040 CMA 5587 37550 1010 TAD ACX10 /LINE NUMBER CAUSING INTERRUPT 5588 37551 4353 ACINT8, JMS ACINT9 /STASH LINE NUMBER & UPDATE POINTERS ETC. 5589 37552 5311 JMP ACINT4 /SCHEDULE LEVEL 2 IF WE WERE IN USER MODE 5590 37553 0000 ACINT9, 0 5591 37554 3411 DCA I ACX11 /STASH AWAY THE LINE NUMBER 5592 37555 2372 ISZ KEYC /COUNT THE ENTRY 5593 37556 2370 ISZ ACCNT /END OF RING BUFFER 5594 37557 5753 JMP I ACINT9 /NO 5595 37560 1367 TAD ACRING 5596 37561 3011 DCA ACX11 /YES - RESET POINTER 5597 37562 1371 TAD ACSIZE 5598 37563 3370 DCA ACCNT /AND THE COUNT 5599 37564 5753 JMP I ACINT9 5600 5601 37565 0000 SRVFLG, 0 5602 37566 0001 TTOFLG, 1 /NON-ZERO WHEN SERVICE IS NOT REQUIRED 5603 37567 0331 ACRING, RINGIN-1 5604 37570 7755 ACCNT, -INPUTS 5605 37571 7755 ACSIZE, -INPUTS 5606 37572 0000 KEYC, 0 5607 HIPRO, 5608 37573 7774 IFNZRO CPU-2 < -4 > 5609 IFZERO CPU-2 < -6 > 5610 37574 0240 HIPRIA, DTCHK 5611 37575 0235 ACTBLA, SKPTBL-1 5612 37576 7705 ACOUT, OUTREG-SKPTBL-NULINE-2 5613 37577 0771 L2QBOT, -L2QTB+1 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 131 5614 5615 7600 *7600 5616 /SYSTEM DISK HANDLERS FOR TSS/8 5617 / SWPIO - HANDLES ALL SWAPS (ONLY SWAPS) 5618 / DSGO0 - HANDLES ALL OTHER TRANSFERS INCLUDING OVERLAYS 5619 5620 37600 0000 SWPIO, 0 / 5621 37601 7346 CLA CLL CMA RTL /=3 IN AC 5622 37602 3353 DCA DSERRI /# OF TRIES 5623 37603 4205 JMS SWPIT /START THE SWAP 5624 37604 5600 JMP I SWPIO /RETURN 5625 5626 37605 0000 SWPIT, 0 5627 37606 1231 TAD SWPA /RETURN ADDRESS FOR INTERRUPT CHAIN 5628 37607 3746 DCA I DSWATA /SAVE IT 5629 IFZERO RF08 < 5630 37610 1053 TAD SQREQ /FIELD TO BE SWAPPED OUT 5631 37611 1347 TAD C0500 /INTERRUPT ON ERROR AND ON COMPLETION 5632 37612 6615 DIML > 5633 37613 3350 DCA DSWC /WORD COUNT 5634 37614 7040 CMA 5635 37615 3351 DCA DSMA /CORE ADDRESS 5636 37616 1054 TAD FINISH /IN OR OUT? 5637 37617 7700 SMA CLA 5638 37620 5225 JMP SWPIN /IN 5639 37621 1154 TAD OUTTRC /GET THE TRACK # TO BE SWAPPED OUT 5640 IFZERO RF08-40 < 5641 TAD SQREQ /FIELD TO BE SWAPPED OUT 5642 DEAL 5643 CLA > 5644 IFZERO RF08 < 5645 37622 6643 DXAL > 5646 37623 6605 DMAW 5647 37624 5605 JMP I SWPIT 5648 37625 1153 SWPIN, TAD INTRC /GET THE TRACK TO READ IN 5649 IFZERO RF08-40 < 5650 TAD SQREQ /FIELD TO BE SWAPPED OUT 5651 DEAL 5652 CLA > 5653 IFZERO RF08 < 5654 37626 6643 DXAL > 5655 37627 6603 DMAR 5656 37630 5605 JMP I SWPIT 5657 5658 5659 37631 7632 SWPA, SWPTR /RETURN ADDRESS AFTER SWAP 5660 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 132 5661 5662 37632 5242 SWPTR, JMP SWPERR /OOPS 5663 37633 1054 TAD FINISH /DID WE JUST SWAP IN OR OUT? 5664 37634 7500 SMA 5665 37635 5246 JMP SWPOK /IN; SO WE'RE FINISHED 5666 37636 7041 CIA 5667 37637 3054 DCA FINISH /SAVE IT 5668 37640 4200 JMS SWPIO /START SWAP IN 5669 37641 5500 DISMIS /GO BACK TO WHAT WE WERE DOING 5670 5671 37642 4251 SWPERR, JMS DSERR /GO TO COMMON ERROR ROUTINE 5672 37643 5247 JMP SWPBAD /SORRY - IT'S OFFICIALLY BAD 5673 37644 4205 JMS SWPIT /TRY AGAIN 5674 37645 5334 JMP DSERRX /GO TO COMMON RETRY EXIT 5675 5676 37646 7201 SWPOK, CLA IAC /SWAP OK; SKIP ON RETURN 5677 37647 1045 SWPBAD, TAD SWPREA /DISPATCH TO LEVEL 2 SWAP COMPLETION 5678 37650 5342 JMP OK /CLEAR DISK FLAG AND EXIT 5679 5680 37651 0000 DSERR, 0 5681 IFZERO RF08 < 5682 37652 7240 STA /SET WC TO CAUSE IMMEDIATE OVERFLOW 5683 37653 3350 DCA DSWC /ONLY SAFE WAY TO STOP THIS DISK 5684 37654 6612 DSAC /SEE IF THE DISK IS STILL BUSY 5685 37655 7410 SKP /THINGS ARE QUIET OUT THERE 5686 37656 5500 DISMIS /WAIT A FEW MICRO-SECONDS 5687 37657 6614 DORS /GET THE STATUS BITS 5688 37660 6601 DCMA /CLEAR EVERYTHING 5689 37661 6641 DCXA /INCLUDING THE TRACK ADDRESS 5690 37662 0034 AND C0004 /DO WE HAVE DRL? 5691 37663 7450 SNA > 5692 IFZERO RF08-40 /STOP DF32 5693 37664 2353 ISZ DSERRI /NO; SO COUNT IT AS AN ERROR 5694 37665 2251 ISZ DSERR /OK TO RETRY ON RETURN 5695 IFZERO RF08 < 5696 37666 7640 SZA CLA 5697 37667 1352 TAD SLEEPA > /BETTER KNOCK OFF THE EAE USER 5698 37670 3272 DCA DSGO0 /SAVE ADDRESS; IF ANY 5699 37671 5651 JMP I DSERR /BACK TO CALLER /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 133 5700 5701 /START DISC TRANSFER 5702 /CALL TAD ADDRESS OF PARAMETERS 5703 / DSGO 5704 / RETURN 5705 5706 37672 0000 DSGO0, 0 5707 37673 3344 DCA DSPARM 5708 37674 7346 CLA CLL CMA RTL 5709 37675 3353 DCA DSERRI 5710 37676 4300 JMS DSTRYA 5711 37677 5672 JMP I DSGO0 5712 5713 37700 0000 DSTRYA, 0 5714 37701 1345 TAD DSRETA 5715 37702 3746 DCA I DSWATA 5716 37703 7240 CLA CMA /ADDRESS OF PARA-1 FOR INDEX REGISTER 5717 37704 1344 TAD DSPARM 5718 37705 3012 DCA DSPAR 5719 37706 6211 DATFLD 5720 37707 1412 TAD I DSPAR /FUNCTION 5721 37710 3327 DCA DSRORW 5722 37711 1412 TAD I DSPAR /DISC EXTENSION 5723 IFZERO RF08-40 < 5724 CLL RTL 5725 CLL RAL 5726 TAD I DSPAR /MEMORY EXTENSION 5727 CLL RAL 5728 DEAL 5729 CLA> 5730 IFZERO RF08 < 5731 37712 7112 CLL RTR 5732 37713 6643 DXAL 5733 37714 1412 TAD I DSPAR 5734 37715 7104 CLL RAL 5735 37716 0137 AND C0070 5736 37717 1347 TAD C0500 5737 37720 6615 DIML /LOAD INTERRUPT ENNABLE AND MEMORY EXTENSION 5738 > 5739 37721 1412 TAD I DSPAR 5740 37722 3350 DCA DSWC 5741 37723 1412 TAD I DSPAR 5742 37724 3351 DCA DSMA 5743 37725 1412 TAD I DSPAR 5744 37726 6201 CDF 5745 37727 0000 DSRORW, 0 5746 37730 5700 JMP I DSTRYA /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 134 5747 5748 37731 4251 DSERR1, JMS DSERR /DO COMMON ERROR ROUTINE 5749 37732 5340 JMP DSGBAD /GIVE UP 5750 37733 4300 JMS DSTRYA /TRY AGAIN 5751 37734 1272 DSERRX, TAD DSGO0 /POSSIBLY AN EAE JOB TO GO TO SLEEP 5752 37735 5500 DISMIS 5753 5754 37736 5331 DSRET, JMP DSERR1 /ERROR 5755 37737 7001 IAC 5756 37740 6211 DSGBAD, DATFLD 5757 37741 1412 TAD I DSPAR 5758 37742 6601 OK, DCMA 5759 37743 5500 DISMIS /BACK TO MONITOR 5760 5761 37744 0000 DSPARM, 0 5762 37745 7736 DSRETA, DSRET 5763 37746 0236 DSWATA, DSWAIT 5764 37747 0500 C0500, 500 5765 5766 7750 *7750 5767 37750 7751 DSWC, DSMA /FOR LOADING INTO FIELD 0 ON INITIALIZATION 5768 37751 7751 DSMA, DSMA /(SINCE THE 4K TRANSFER OVERWRITES THE DATA BREAK LOCATIONS) 5769 37752 5151 SLEEPA, SLEEP 5770 37753 0000 DSERRI, 0 5771 37754 0000 0 /FOR DECTAPE SERVICE 5772 37755 0000 0 /FOR DECTAPE SERVICE 5773 FIELD 4 /FORCE TS8II INTO TRACK 4 AT BUILD TIME /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 135 5774 5775 /TS8II VERSION 8.24 (01-JANUARY-75) 5776 / 5777 / 5778 / 5779 / 5780 /COPYRIGHT (C) 1975 5781 /DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. 5782 / 5783 / 5784 /THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY 5785 /ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH 5786 /THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS 5787 /SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- 5788 /VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON 5789 /EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO 5790 /THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE 5791 /SOFTWARE SHALL REMAIN IN DEC. 5792 / 5793 /THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE 5794 /WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A COM- 5795 /MITMENT BY DIGITAL EQUIPMENT CORPORATION. 5796 / 5797 /DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR 5798 /RELIABILITY OF ITS SOFTWARE ON EQUIPMENT WHICH IS NOT 5799 /SUPPLIED BY DEC. /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 136 5800 5801 0000 *0 5802 40000 0000 ZBLOCK 10 /IF ANY OF THESE BECOMES NON-ZERO, FIND OUT WHY! 40001 0000 40002 0000 40003 0000 40004 0000 40005 0000 40006 0000 40007 0000 5803 5804 0010 *10 5805 40010 0030 K0030, 30 5806 40011 0614 K0614, 614 5807 40012 0500 K0500, 500 5808 40013 0000 IX3, 0 5809 5810 40014 3052 IX4, JOBTBL /WAIT 2 UNQUEUER POINTER 5811 40015 0000 A15, 0 /DECTAPE - FOR EXTRACTING USER INFO. FROM DDB 5812 40016 0000 A16, 0 /BLTF1 - USER FIELD POINTER 5813 40017 0000 A17, 0 /BLTF1 - DATFLD POINTER 5814 5815 40020 0000 DTJOB, 0 5816 40021 0000 DTBUF, 0 5817 40022 0000 DTST, 0 5818 40023 0000 DTBLKP, 0 5819 40024 0000 DTBLK, 0 5820 40025 0000 DTCOM, 0 5821 40026 0000 DTUCA, 0 5822 40027 0000 DTTIME, 0 5823 40030 0000 DTREMB, 0 5824 40031 1206 DTGOA, DTGO 5825 40032 1021 DTERRA, DTERR 5826 40033 0377 DTBUFA, ENDBUF-1 5827 40034 7755 DTCAP, 7755 5828 40035 5076 M2702, -2702 5829 40036 7577 M201, -201 5830 40037 0214 K0214, 214 5831 40040 0070 K0070, 70 5832 40041 0400 K0400, 400 5833 40042 7400 K7400, 7400 5834 40043 0002 K0002, 2 5835 40044 0037 K0037, 37 5836 40045 0005 K0005, 5 5837 40046 0020 K0020, 20 5838 40047 7770 K7770, 7770 5839 40050 0377 K0377, 377 5840 40051 0006 K0006, 6 5841 40052 1000 K1000, 1000 5842 40053 0600 K0600, 600 5843 40054 0000 RKJOB, 0 5844 40055 0000 RKCORE, 0 5845 40056 0000 RKCOM, 0 5846 40057 0000 RKSECT, 0 5847 40060 0000 RKCNT, 0 5848 40061 0000 RKBLKS, 0 5849 40062 0000 RKTIME, 0 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 137 5850 40063 5151 SLEEPB, SLEEP 5851 40064 1640 RKERRA, RKERR 5852 40065 7353 DTRKHA, DTRKHG 5853 40066 1652 WAIT2, WAITS2 5854 40067 1552 AWAKEN, WAKEUP 5855 40070 2125 DTCHKA, DEVCHK /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 138 5856 5857 40071 2354 QUEUE1, QUEUE0 5858 40072 1532 BLTF1A, BLTF1 5859 40073 3052 JOBTAB, JOBTBL 5860 5861 40074 0000 INTS1, 0 /INTERRUPT TEMPORARY STORAGE 5862 40075 0000 INTS2, 0 5863 40076 0000 TEMP0, 0 /WORKING STORAGE 5864 40077 0000 TEMP1, 0 5865 40100 0000 TEMP2, 0 5866 40101 0000 TEMP3, 0 5867 40102 0000 TEMP4, 0 5868 40103 0007 K0007, 7 5869 40104 0010 K0010, 10 5870 40105 0200 K0200, 200 5871 40106 0204 K0204, 204 5872 40107 0040 K0040, 40 5873 40110 0004 K0004, 4 5874 40111 6201 K6201, 6201 5875 40112 7000 K7000, 7000 5876 40113 7700 K7700, 7700 5877 40114 7774 K7774, 7774 5878 40115 0003 K0003, 3 5879 40116 0106 L2SAP, L2SV0+2 /POINTS TO L2SA IN FIELD 0 5880 40117 0000 UDF1, 0 /SELECT USER FIELD 5881 40120 0000 0 5882 40121 5517 JMP I .-2 5883 5884 40122 7754 JOBCNT, -JOBMAX 5885 40123 0151 UDFP, UUDF 5886 40124 1475 DTRKJA, DTRKJB 5887 5888 40125 0000 F1SCH, 0 5889 5126 EXITF1= JMP . 5890 40126 6203 K6203, CIF CDF 5891 40127 1125 TAD F1SCH 5892 40130 7650 SNA CLA /ANYTHING JUST OUT OF WAIT? 5893 40131 5535 JMP I .+4 /NO - NORMAL LEVEL 2 EXIT 5894 40132 3125 DCA F1SCH /YES - CLEAR FLAG 5895 40133 5534 JMP I .+1 /IF NULL JOB IS RUNNING RE-SCHEDULE 5896 40134 2437 SCHED0 5897 40135 1513 L2EXIT 5898 5899 5136 INTRTN= JMP . 5900 40136 6203 CIF CDF 5901 40137 5540 JMP I .+1 5902 40140 0266 F1RTN /DISMISS INTERRUPT FROM HI-PRIORITY DEVICE /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 139 5903 5904 /JOB TABLE ADDRESS TO TEMP0 5905 /CALL TAD JOB # 5906 / JMS GETTBA 5907 / TABLE ENTRY 5908 / RETURN WITH ADDRESS IN TEMP0 5909 5910 40141 0000 GETTBA, 0 5911 40142 6211 DATFLD 5912 40143 3076 DCA TEMP0 /SAVE JOB # 5913 40144 1541 TAD I GETTBA /PICK UP ARGUMENT 5914 40145 3152 DCA .+5 5915 40146 1076 TAD TEMP0 /JOB # 5916 40147 1073 TAD JOBTAB /START OF JOBTBL 5917 40150 6202 CIF 5918 40151 4556 JMS I GETTB1 /GETJTA 5919 40152 0000 0 5920 40153 3076 DCA TEMP0 /ADDRESS TO TEMP0 5921 40154 2141 ISZ GETTBA 5922 40155 5541 JMP I GETTBA 5923 40156 0401 GETTB1, GETJTB 5924 5925 5926 0160 *160 5927 40160 0160 JOB, . /POINTER TO CURRENT JOB NUMBER 5928 40161 0000 CJOBDA, 0 /POINTER TO JOB STATUS BLOCK, CURRENT JOB 5929 40162 7000 CORTBA, CORTBL-1 5930 40163 2740 DEVTBA, DEVTBL 5931 40164 0000 F1OFFJ, 0 /MASK FOR LOGIN; MODIFIED BY THE "ON & OFF" COMMANDS (ON=0; OFF=7774) 5932 5165 WAITF1= JMP . 5933 40165 6203 CIF CDF 5934 40166 5567 JMP I WAIT1 5935 40167 2573 WAIT1, WSCHED 5936 5937 0170 *170 5938 40170 0033 NULINE /SYSTEM PARAMETERS CONVENIENT FOR SYSTAT 5939 40171 0024 JOBMAX 5940 40172 2740 DEVTBL 5941 40173 0000 UPTIM2, 0 /HIGH ORDER UPTIME IN SECONDS 5942 40174 0000 UPTIM1, 0 /LOW ORDER UPTIME IN SECONDS 5943 5944 /DDB POINTERS FOR USE BY SI 5945 40175 0000 F1TCNT, 0 /DDB CHARACTER COUNT 5946 40176 0000 F1ECNT, 0 /DDB EMPTY COUNT 5947 40177 0000 F1BUF, 0 /DDB EMPTY BLOCK /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 140 5948 5949 0200 *OUTREG 5950 40200 0000 ZBLOCK SKPTBL-OUTREG 40201 0000 40202 0000 40203 0000 40204 0000 40205 0000 40206 0000 40207 0000 40210 0000 40211 0000 40212 0000 40213 0000 40214 0000 40215 0000 40216 0000 40217 0000 40220 0000 40221 0000 40222 0000 40223 0000 40224 0000 40225 0000 40226 0000 40227 0000 40230 0000 40231 0000 40232 0000 40233 0000 40234 0000 40235 0000 5951 5952 6001 KSKIP= KSF-30 5953 6001 TSKIP= TSF-40 5954 0236 *SKPTBL 5955 5956 40236 6031 KSF /K00 /SKIP IOT FOR CONSOLE KEYBOARD 5957 IFZERO DC08A < 5958 KSKIP+400 /K01 /KEYBOARD SKIP IOTS FOR PT08 AND KL8E 5959 KSKIP+420 /K02 5960 KSKIP+440 /K03 5961 KSKIP+460 > /K04 5962 40237 6341 KSKIP+340 /K05; K01 IF DC08A WITH PT08'S 5963 40240 6111 KSKIP+110 /K06; K02 IF DC08A WITH PT08'S 5964 IFNZRO CPU-1 < 5965 40241 6301 KSKIP+300 > /K07; K03 IF DC08A WITH PT08'S 5966 40242 6321 KSKIP+320 /K10; K04 IF DC08A WITH PT08'S 5967 40243 6501 KSKIP+500 /K11; K05 IF DC08A WITH PT08'S 5968 40244 6521 KSKIP+520 /K12; K06 IF DC08A WITH PT08'S 5969 40245 6541 KSKIP+540 /K13; K07 IF DC08A WITH PT08'S 5970 40246 6561 KSKIP+560 /K14; K10 IF DC08A WITH PT08'S 5971 40247 6701 KSKIP+700 /K15 5972 40250 6361 KSKIP+360 /K16 5973 40251 6721 KSKIP+720 /K17 5974 40252 6061 KSKIP+060 /K20 5975 40253 6141 KSKIP+140 /K21 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 141 5976 40254 6161 KSKIP+160 /K22 5977 40255 6051 KSKIP+050 /K23 5978 5979 5980 IFNZRO DC08A < 5981 0247 *SKPTBL+PT08+KL8+1 5982 40247 5201 DC8REG 5983 40250 0000 ZBLOCK DC08A > /DC08A ACTIVE OUTPUT REGISTERS 40251 0000 40252 0000 40253 0000 40254 0000 40255 0000 40256 0000 40257 0000 40260 0000 40261 0000 40262 0000 40263 0000 40264 0000 40265 0000 40266 0000 40267 0000 40270 0000 40271 0000 40272 0000 5984 5985 5986 IFZERO DC08A <*SKPTBL+NULINE+1 5987 OUTIOT > /SWITCH TO OUTPUT SIDE /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 142 5988 5989 40273 6041 TSF /K00 /SKIP IOT FOR CONSOLE TELEPRINTER 5990 IFZERO DC08A < 5991 TSKIP+410 /K01 /TELEPRINTER SKIP IOTS FOR PT08 AND KL8E 5992 TSKIP+430 /K02 5993 TSKIP+450 /K03 5994 TSKIP+470 > /K04 5995 40274 6351 TSKIP+350 /K05; K01 IF DC08A WITH PT08'S 5996 40275 6121 TSKIP+120 /K06; K02 IF DC08A WITH PT08'S 5997 IFNZRO CPU-1 < 5998 40276 6311 TSKIP+310 > /K07; K03 IF DC08A WITH PT08'S 5999 40277 6331 TSKIP+330 /K10; K04 IF DC08A WITH PT08'S 6000 40300 6511 TSKIP+510 /K11; K05 IF DC08A WITH PT08'S 6001 40301 6531 TSKIP+530 /K12; K06 IF DC08A WITH PT08'S 6002 40302 6551 TSKIP+550 /K13; K07 IF DC08A WITH PT08'S 6003 40303 6571 TSKIP+570 /K14; K10 IF DC08A WITH PT08'S 6004 40304 6711 TSKIP+710 /K15 6005 40305 6371 TSKIP+370 /K16 6006 40306 6731 TSKIP+730 /K17 6007 40307 6071 TSKIP+070 /K20 6008 40310 6151 TSKIP+150 /K21 6009 40311 6171 TSKIP+170 /K22 6010 40312 6651 TSKIP+650 /K23 6011 IFNZRO DC08A < 6012 0304 *SKPTBL+NULINE+PT08+KL8+3 6013 40304 5600 JMPDC8 /DC08A OUTPUT VECTOR 6014 40305 5600 JMPDC8 /DC08A OUTPUT VECTOR 6015 40306 5600 JMPDC8 /DC08A OUTPUT VECTOR 6016 40307 5600 JMPDC8 /DC08A OUTPUT VECTOR 6017 40310 5600 JMPDC8 /DC08A OUTPUT VECTOR 6018 40311 5600 JMPDC8 /DC08A OUTPUT VECTOR 6019 40312 5600 JMPDC8 /DC08A OUTPUT VECTOR 6020 40313 5600 JMPDC8 /DC08A OUTPUT VECTOR 6021 40314 5600 JMPDC8 /DC08A OUTPUT VECTOR 6022 40315 5600 JMPDC8 /DC08A OUTPUT VECTOR 6023 40316 5600 JMPDC8 /DC08A OUTPUT VECTOR 6024 40317 5600 JMPDC8 /DC08A OUTPUT VECTOR 6025 40320 5600 JMPDC8 /DC08A OUTPUT VECTOR 6026 40321 5600 JMPDC8 /DC08A OUTPUT VECTOR 6027 40322 5600 JMPDC8 /DC08A OUTPUT VECTOR 6028 40323 5600 JMPDC8 /DC08A OUTPUT VECTOR 6029 40324 5600 JMPDC8 /DC08A OUTPUT VECTOR 6030 40325 5600 JMPDC8 /DC08A OUTPUT VECTOR 6031 40326 5600 JMPDC8 /DC08A OUTPUT VECTOR 6032 40327 5600 JMPDC8 > /DC08A OUTPUT VECTOR 6033 0327 *SKPTP 6034 40327 6021 IFNZRO PUNCH /PUNCH 6035 IFZERO PUNCH 6036 40330 6661 IFNZRO LPT /LINE PRINTER 6037 IFZERO LPT 6038 40331 5333 ENDIOT /TERMINATES LIST /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 143 6039 6040 0332 *RINGIN 6041 /ADDITIONAL FREE CORE GENERATION TABLE 6042 /REFERENCED BY INIT AT START TIME 6043 / THE FOLLOWING AREAS WILL BECOME PART OF FREE CORE: 6044 6045 IFZERO TC01+RK05+CDR < 6046 40332 0400 ENDBUF;FCE4 > 40333 2200 6047 6048 IFNZRO TC01+RK05+CDR < 6049 IFZERO TC01 < 6050 ENDBUF;FCE1 > 6051 IFZERO RK05 < 6052 FCB2;FCE2 6053 FCB4;FCE4 > 6054 IFZERO CDR < 6055 FCB3;FCE3 > > 6056 IFNZRO DC08A < 6057 IFNZRO D689 < 6058 FCB5;FCE5 > 6059 IFZERO D689 < 6060 40334 2360 FCB5;DATA1 > > 40335 2600 6061 40336 0000 0 /TO TERMINATE THE LIST 6062 NOPUNCH 6063 40337 0000 ZBLOCK 40000+ENDBUF-. /KEYBOARD INPUT RING BUFFER 40340 0000 40341 0000 40342 0000 40343 0000 40344 0000 40345 0000 40346 0000 40347 0000 40350 0000 40351 0000 40352 0000 40353 0000 40354 0000 40355 0000 40356 0000 40357 0000 40360 0000 40361 0000 40362 0000 40363 0000 40364 0000 40365 0000 40366 0000 40367 0000 40370 0000 40371 0000 40372 0000 40373 0000 40374 0000 40375 0000 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 144 40376 0000 40377 0000 6064 // ZBLOCK ENDBUF-. /KEYBOARD INPUT RING BUFFER 6065 ENPUNCH 6066 0400 *ENDBUF 6067 NOPUNCH 6068 40400 0000 ZBLOCK 201 /DECTAPE BUFFER 40401 0000 40402 0000 40403 0000 40404 0000 40405 0000 40406 0000 40407 0000 40410 0000 40411 0000 40412 0000 40413 0000 40414 0000 40415 0000 40416 0000 40417 0000 40420 0000 40421 0000 40422 0000 40423 0000 40424 0000 40425 0000 40426 0000 40427 0000 40430 0000 40431 0000 40432 0000 40433 0000 40434 0000 40435 0000 40436 0000 40437 0000 40440 0000 40441 0000 40442 0000 40443 0000 40444 0000 40445 0000 40446 0000 40447 0000 40450 0000 40451 0000 40452 0000 40453 0000 40454 0000 40455 0000 40456 0000 40457 0000 40460 0000 40461 0000 40462 0000 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 145 40463 0000 40464 0000 40465 0000 40466 0000 40467 0000 40470 0000 40471 0000 40472 0000 40473 0000 40474 0000 40475 0000 40476 0000 40477 0000 40500 0000 40501 0000 40502 0000 40503 0000 40504 0000 40505 0000 40506 0000 40507 0000 40510 0000 40511 0000 40512 0000 40513 0000 40514 0000 40515 0000 40516 0000 40517 0000 40520 0000 40521 0000 40522 0000 40523 0000 40524 0000 40525 0000 40526 0000 40527 0000 40530 0000 40531 0000 40532 0000 40533 0000 40534 0000 40535 0000 40536 0000 40537 0000 40540 0000 40541 0000 40542 0000 40543 0000 40544 0000 40545 0000 40546 0000 40547 0000 40550 0000 40551 0000 40552 0000 40553 0000 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 146 40554 0000 40555 0000 40556 0000 40557 0000 40560 0000 40561 0000 40562 0000 40563 0000 40564 0000 40565 0000 40566 0000 40567 0000 40570 0000 40571 0000 40572 0000 40573 0000 40574 0000 40575 0000 40576 0000 40577 0000 40600 0000 6069 ENPUNCH 6070 0601 *. 6071 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 147 6072 6073 /DECTAPE LEVEL 1 ENTRY 6074 6075 40601 1030 DTL11, TAD DTREMB /PREVIOUS ERRORS FROM THIS TRANSFER 6076 40602 6772 DTRB /"OR'ED" WITH ANY NEW ERRORS 6077 40603 3030 DCA DTREMB 6078 40604 6772 DTRB /WERE THERE ANY ERRORS? 6079 40605 7500 SMA 6080 40606 5770 JMP I DTXOR /A-OK! 6081 40607 0012 AND K0500 /WHAT WAS IT? 6082 40610 7450 SNA /SELECT ERROR OR TIMING ERROR 6083 40611 5220 JMP DTSR0 /NO - MUST BE MARK, END, OR PARITY 6084 40612 0041 AND K0400 6085 40613 7640 SZA CLA /TIMING ERROR? 6086 40614 5222 JMP DTSR1 /NO - SELECT ERROR - DON'T RETRY 6087 40615 7144 CLL CMA RAL /AC=-2 6088 40616 1432 TAD I DTERRA /TIMING ERROR WAS OUR FAULT - INTERRUPT OFF TOO LONG 6089 40617 3432 DCA I DTERRA /DON'T CHARGE HIM/HER FOR THE TURN-AROUNDS 6090 40620 2432 DTSR0, ISZ I DTERRA /COUNT A TURN-AROUND 6091 40621 5226 JMP DTSR2 /OK - CONTINUE SEARCHING 6092 40622 1030 DTSR1, TAD DTREMB /ACCUMULATED ERROR STATUS 6093 40623 7004 RAL 6094 40624 7130 STL RAR /MAKE SURE THE ERROR BIT IS SET 6095 40625 5323 JMP DTSTOP /SHUT HIM/HER DOWN 6096 40626 6201 DTSR2, CDF 6097 40627 1023 TAD DTBLKP 6098 40630 3434 DCA I DTCAP /RESTORE CA TO POINT INTO WORD 2 OF HIS/HER DDB 6099 40631 6761 DTRA /CURRENT STATUS 6100 40632 0050 AND K0377 6101 40633 6764 DTXA /CLEAR GO, FUNCTION, AND INTERRUPT ENABLE 6102 40634 1011 TAD K0614 /SWITCH DIRECTIONS, GO, SEARCH AND ENABLE 6103 40635 4370 DTSRCH, JMS DTXOR /CONTINUE SEARCHING 6104 40636 1025 DTSR3, TAD DTCOM 6105 40637 7006 RTL 6106 40640 7006 RTL 6107 40641 7264 STA CML RAL /AC=-1 IF FORWARDS R/W; AC=-2 IF REVERSE R/W 6108 40642 3370 DCA DTDIR 6109 40643 1423 TAD I DTBLKP 6110 40644 1035 TAD M2702 6111 40645 7620 SNL CLA /ARE WE AT A REASONABLE BLOCK NUMBER? 6112 40646 5220 JMP DTSR0 /NO -- TURN AROUND 6113 40647 1024 TAD DTBLK 6114 40650 1035 TAD M2702 6115 40651 7620 SNL CLA /DOES HE WANT A REASONABLE BLOCK? 6116 40652 5222 JMP DTSR1 /NO -- QUIT LOOKING FOR IT 6117 40653 6761 DTRA /WHICH WAY ARE WE GOING? 6118 40654 7006 RTL 6119 40655 7006 RTL 6120 40656 7200 CLA /PRESENT DIRECTION IS IN THE LINK 6121 40657 1024 TAD DTBLK /BLOCK WANTED 6122 40660 7041 CIA 6123 40661 1423 TAD I DTBLKP /BLOCK FOUND 6124 40662 7450 SNA /ARE WE THERE? 6125 40663 5304 JMP DTSR5 /YES - SEE IF WE ARE GOING IN THE RIGHT DIRECTION 6126 40664 2370 ISZ DTDIR /NO 6127 40665 7041 CIA /REVERSE R/W - NEGATE AC 6128 40666 7500 SMA /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 148 6129 40667 5276 JMP DTSR4 /SKIP SOME CODE - WE'RE ON THE WRONG SIDE OF THE BLOCK 6130 40670 7430 SZL /L=1 MEANS WE'RE GOING THE WRONG WAY 6131 40671 1115 TAD K0003 /MAKE ROOM FOR TURN-AROUND 6132 40672 7040 CMA 6133 40673 0047 AND K7770 6134 40674 7450 SNA /ARE WE CLOSE? 6135 40675 4361 JMS DTSR7 /YES - GO CHECK BUFFER STATUS 6136 40676 0113 DTSR4, AND K7700 /ARE WE TOO FAR AWAY? 6137 40677 7560 SZA SNL SMA 6138 40700 5343 JMP DTSR6 /PUT HIM/HER ON THE TIMER 6139 40701 7620 SNL CLA /ARE WE GOING IN THE RIGHT DIRECTION? 6140 40702 5235 JMP DTSRCH /CONTINUE IN THE SAME DIRECTION 6141 40703 5220 JMP DTSR0 /GO TURN AROUND 6142 6143 40704 4361 DTSR5, JMS DTSR7 /CHECK ON BUFFER STATUS 6144 40705 2370 ISZ DTDIR 6145 40706 7020 CML /CORRECT LINK FOR REVERSE R/W 6146 40707 7420 SNL /ARE WE GOING IN THE RIGHT DIRECTION? 6147 40710 5235 JMP DTSRCH /NO - CAUSE OVER-SHOOT FOR TURN-AROUND 6148 40711 1036 TAD M201 6149 40712 6201 CDF 6150 40713 3740 DCA I DTWCP /SET UP DECTAPE WORD COUNT 6151 40714 1033 TAD DTBUFA 6152 40715 3434 DCA I DTCAP /SET UP DECTAPE CURRENT ADDRESS 6153 40716 1025 TAD DTCOM 6154 40717 0107 AND K0040 /READ OR WRITE? 6155 40720 7110 CLL RAR 6156 40721 1010 TAD K0030 6157 40722 4370 JMS DTXOR /CHANGE FROM SEARCH TO READ OR WRITE 6158 40723 2021 DTSTOP, ISZ DTBUF /ASSIGN THE BUFFER - IF HE DOESN'T ALREADY HAVE IT 6159 40724 0341 AND K7701 6160 40725 3432 DCA I DTERRA /SAVE STATUS B FOR HIM/HER 6161 40726 6761 DTRA 6162 40727 0041 AND K0400 6163 40730 7640 SZA CLA /WHICH WAY ARE WE GOING? 6164 40731 1114 TAD K7774 6165 40732 1043 TAD K0002 6166 40733 1423 TAD I DTBLKP /REMEMBER WHERE WE WILL FINALLY STOP 6167 40734 3423 DCA I DTBLKP 6168 40735 6761 DTRA 6169 40736 0106 AND K0204 /CLEAR GO & INTERRUPT ENABLE 6170 40737 5235 JMP DTSRCH /TO STOP THE TAPE /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 149 6171 6172 40740 7754 DTWCP, 7754 6173 40741 7701 K7701, 7701 6174 40742 0014 K0014, 14 6175 6176 40743 7012 DTSR6, RTR /DIVIDE BY 100 6177 40744 7012 RTR 6178 40745 7012 RTR 6179 40746 7041 CIA 6180 40747 3021 DCA DTBUF /-SECONDS TO WIND ON TIMER 6181 40750 1115 TAD K0003 6182 40751 1422 TAD I DTST 6183 40752 3370 DCA DTDIR /POINTS TO USER WORD 1 6184 40753 6761 DTRA 6185 40754 0041 AND K0400 6186 40755 7640 SZA CLA /WHICH WAY SHOULD WE SET THE BRAKES LATER? 6187 40756 2770 ISZ I DTDIR /SET BIT 11 TO SHOW REVERSE 6188 40757 1342 TAD K0014 6189 40760 5235 JMP DTSRCH /KEEP HIM/HER MOVING WITH INT. DISABLED 6190 6191 40761 0000 DTSR7, 0 6192 40762 1025 TAD DTCOM 6193 40763 0046 AND K0020 /IS THIS A READ? 6194 40764 1021 TAD DTBUF /OR - IS THE BUFFER LOADED FOR A WRITE? 6195 40765 7640 SZA CLA 6196 40766 5761 JMP I DTSR7 /PROCEED 6197 40767 5325 JMP DTSTOP+2 /STOP AND WAIT FOR THE BUFFER TO BE LOADED 6198 6199 DTDIR, 6200 40770 0723 DTXOR, DTSTOP /WHERE TO RETURN ON SUCCESSFUL INTERRUPT 6201 40771 6764 DTXA /ZAP IN THE NEW FUNCTION 6202 40772 6761 DTRA 6203 40773 7012 RTR 6204 40774 7010 RAR 6205 40775 7630 SZL CLA /DID WE STOP? 6206 40776 7066 CML CMA RTL 6207 40777 3027 DCA DTTIME /LOAD THE CONTROLLER TIMER 6208 41000 7420 SNL 6209 41001 1203 TAD DTL2 /WE'RE DONE - SCHEDULE LEVEL 2 6210 41002 5136 INTRTN 6211 41003 5743 DTL2, DTL20 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 150 6212 6213 /DECTAPE LEVEL 2 COMPLETION 6214 41004 1021 DTL21, TAD DTBUF /WHAT KIND OF COMPLETION? 6215 41005 7450 SNA 6216 41006 5222 JMP DTEND4 /END OF A SEARCH - TAPE NOW IN POSITION FOR THE WRITE 6217 41007 7710 SPA CLA 6218 41010 5225 JMP DTEND6 /THIS DRIVE HAS BEEN PUT ON TIMER 6219 41011 1025 TAD DTCOM 6220 41012 0046 AND K0020 6221 41013 7450 SNA /WAS IT A READ OR WRITE? 6222 41014 5217 JMP DTEND3 /WRITE - HE'S ALL DONE 6223 41015 4231 JMS DTDATA /READ - TRANSFER HIS/HER DATA BACK TO HIM/HER 6224 41016 5126 EXITF1 /WAIT FOR DISK TO FINISH 6225 41017 1020 DTEND3, TAD DTJOB 6226 41020 4467 JMS I AWAKEN /TAKE HIM/HER OUT OF WAIT STATUS 6227 41021 0000 DTERR, 0 6228 41022 3020 DTEND4, DCA DTJOB /CONTROLLER IS FREE 6229 41023 4431 DTEND5, JMS I DTGOA /TRY TO START A DECTAPE TRANSFER 6230 41024 5126 EXITF1 6231 6232 41025 1021 DTEND6, TAD DTBUF 6233 41026 3415 DCA I A15 /SAVE -SECONDS TO WIND TAPE 6234 41027 2422 ISZ I DTST /CHANGE TO DECTAPE TIMER WAIT 6235 41030 5222 JMP DTEND4 /FIND SOMETHING ELSE TO DO 6236 6237 /MOVE 201 WORDS TO/FROM USER, FROM/TO DATFLD 6238 /USER MAY BE IN CORE OR ON HIS/HER SWAP TRACK 6239 41031 0000 DTDATA, 0 6240 41032 3077 DCA TEMP1 /SAVE READ/WRITE INDICATOR: 0=WRITE, 20=READ 6241 41033 6202 CIF 6242 41034 1020 TAD DTJOB 6243 41035 4715 JMS I COREA /NOW FIND OUT WHERE HE IS 6244 41036 6637 SWAP LOCK FIP SI CJOB 6245 41037 5256 JMP DTDA1 /HE'S IN HIS/HER SWAP TRACK 6246 41040 0040 AND K0070 /SAVE HIS/HER FIELD 6247 41041 1111 TAD K6201 6248 41042 3120 DCA UDF1+1 /UDF1 IS FIXED FOR BLTF1 6249 41043 1033 TAD DTBUFA 6250 41044 3017 DCA A17 /POINTS TO DECTAPE BUFFER IN DATFLD 6251 41045 1026 TAD DTUCA 6252 41046 3016 DCA A16 /USER BUFFER POINTER 6253 41047 1077 TAD TEMP1 6254 41050 7152 CLL CMA RTR 6255 41051 7012 RTR 6256 41052 7010 RAR 6257 41053 4472 JMS I BLTF1A /L=0 FOR READ, L=1 FOR WRITE; AC=-201 6258 41054 2231 ISZ DTDATA /SKIP - DATA HAS ALREADY BEEN MOVED 6259 41055 5631 JMP I DTDATA /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 151 6260 6261 41056 7001 DTDA1, IAC 6262 41057 1026 TAD DTUCA 6263 41060 7101 CLL IAC 6264 41061 1105 TAD K0200 6265 41062 7420 SNL /DO WE HAVE A WRAP-AROUNND SITUATION? 6266 41063 7200 CLA /NO - WE CAN DO THE WHOLE THING AT ONCE 6267 41064 1036 TAD M201 6268 41065 3310 DCA DTDWC /WC FOR DISK TRANSFER 6269 41066 1033 TAD DTBUFA 6270 41067 3311 DCA DTDCA /CA FOR DISK TRANSFER 6271 41070 1020 TAD DTJOB 6272 41071 1110 TAD K0004 6273 41072 7106 CLL RTL 6274 41073 3306 DCA DTDHI /TRACK ADDRESS FOR DISK TRANSFER 6275 41074 1077 TAD TEMP1 6276 41075 7640 SZA CLA 6277 41076 7126 STL RTL 6278 41077 1316 TAD DTDMAR 6279 41100 3305 DCA DTDIOT /DMAR OR DMAW FOR DISK TRANSFER 6280 41101 7001 IAC 6281 41102 1026 TAD DTUCA 6282 41103 4320 JMS DTDGO /START THE DISK 6283 41104 5631 JMP I DTDATA /EXIT - NO SKIP - MUST WAIT FOR DISK 6284 6285 /DISK PARAMETER BLOCK FOR DECTAPE HANDLER 6286 41105 0000 DTDIOT, 0 6287 41106 0000 DTDHI, 0 6288 41107 0007 7 6289 41110 0000 DTDWC, 0 6290 41111 0000 DTDCA, 0 6291 41112 0000 DTDLO, 0 6292 41113 5751 DTDSK 6293 41114 1105 DTDPAR, DTDIOT 6294 6295 41115 1317 COREA, CORSRC 6296 41116 6603 DTDMAR, DMAR 6297 41117 5733 DTDISK, DTDSF0 6298 6299 41120 0000 DTDGO, 0 6300 41121 3312 DCA DTDLO /DISK ADDRESS TO START AT 6301 41122 1314 TAD DTDPAR 6302 41123 6202 CIF 6303 41124 4717 JMS I DTDISK /NOW GO TO TS8 TO START OUR REQUEST 6304 41125 5720 JMP I DTDGO /RETURN HERE AFTER STARTING THE DISK 6305 41126 5335 JMP DTDCMP /RETURN HERE AFTER A GOOD DISK TRANSFER 6306 41127 7410 SKP /RETURN HERE AFTER A BAD DISK TRANSFER 6307 41130 5217 JMP DTEND3 /RETURN HERE AFTER REPORTING THE DISK ERROR 6308 41131 1020 TAD DTJOB /JOB IN TROUBLE 6309 41132 6203 CIF CDF 6310 41133 5734 JMP I .+1 /GO REPORT THE ERROR - MAKE IT SWPRER 6311 41134 5745 DTDEF0 6312 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 152 6313 6314 41135 1310 DTDCMP, TAD DTDWC 6315 41136 7041 CIA 6316 41137 1036 TAD M201 6317 41140 7450 SNA /DO WE NEED A SECOND PASS? 6318 41141 5353 JMP DTDCM0 /NO - IT'S DONE 6319 41142 3310 DCA DTDWC 6320 41143 1312 TAD DTDLO /YES - HAVE WE ALREADY DONE IT? 6321 41144 7450 SNA 6322 41145 5353 JMP DTDCM0 /ALL FINISHED! 6323 41146 7041 CIA 6324 41147 1311 TAD DTDCA /UPDATE THE DISK'S C.A. 6325 41150 3311 DCA DTDCA 6326 41151 4320 JMS DTDGO /START THE DISK AGAIN 6327 41152 5126 EXITF1 6328 6329 41153 1021 DTDCM0, TAD DTBUF /WAS IT A READ OR A WRITE? 6330 41154 7640 SZA CLA 6331 41155 5217 JMP DTEND3 /READ - WE'RE FINISHED 6332 41156 2021 ISZ DTBUF /ASSIGN THE BUFFER TO HIM/HER NOW 6333 41157 1015 TAD A15 /GO RESTART HIS/HER WRITE 6334 41160 5223 JMP DTEND5 6335 6336 41161 0000 DTLOAD, 0 6337 41162 3320 DCA DTDGO /SAVE THE DESIRED STATUS A 6338 41163 6761 DTRA 6339 41164 3231 DCA DTDATA /AND THE PRESENT STATUS A 6340 41165 1320 TAD DTDGO 6341 41166 0231 AND DTDATA /WHERE WILL CARRIES BE GENERATED 6342 41167 7041 CIA 6343 41170 7104 CLL RAL /WE WANT TO CANCEL THE CARRIES 6344 41171 1320 TAD DTDGO /NOW ADD THEM TOGETHER 6345 41172 1231 TAD DTDATA /NOW WE HAVE THE "XOR" OF THE "PRESENT" AND THE "DESIRED" STATUS A 6346 41173 6764 DTXA /"XOR" IT INTO THE CONTROLLER 6347 41174 5761 JMP I DTLOAD /THE RESULT WILL BE THE DESIRED STATUS A 6348 6349 41175 3014 STSI, DCA IX4 /SI - WANTS TO STOP A TAPE ON TIMER 6350 41176 7144 CLL CMA RAL 6351 41177 3077 DCA TEMP1 /ONLY STOP ONE TAPE 6352 41200 3100 DCA TEMP2 /PREVENT HIM/HER FROM GOING BACK INTO DECTAPE CONTROLLER WAIT 6353 41201 7001 K7001, IAC 6354 41202 4324 JMS DTIMER /STOP HIM/HER 6355 41203 6222 CIF 20 6356 41204 5605 JMP I .+1 /BACK TO SI 6357 41205 7270 DTSIDT /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 153 6358 6359 /START OR RESTART A DECTAPE READ OR WRITE FOR THE USER 6360 6361 41206 0000 DTGO, 0 6362 41207 7440 SZA /ARE WE RESTARTING AFTER A TIMER KILLED US? 6363 41210 5220 JMP DTGO1 /YES - SO WE DON'T NEED TO LOOK AT THE QUEUE 6364 41211 1020 TAD DTJOB 6365 41212 7640 SZA CLA /IS THE CONTROLLER BUSY? 6366 41213 5606 JMP I DTGO /CONTROLLER IS ALREADY BUSY 6367 41214 3021 DCA DTBUF /BUFFER IS EMPTY 6368 41215 4524 JMS I DTRKJA /FIND SOMEONE WAITING FOR THE CONTROLLER 6369 41216 7777 -1 6370 41217 5606 JMP I DTGO /NOTHING WAITING 6371 41220 0047 DTGO1, AND K7770 6372 41221 3015 DCA A15 6373 41222 1415 TAD I A15 /PULL JOB NUMBER FROM DDB 6374 41223 3020 DCA DTJOB 6375 41224 1020 TAD DTJOB 6376 41225 4141 JMS GETTBA /FIND WAIT 2 6377 41226 0004 JOBWMK+1 6378 41227 1076 TAD TEMP0 6379 41230 3022 DCA DTST /SAVE ITS POINTER FOR LATER 6380 41231 2015 ISZ A15 6381 41232 1015 TAD A15 /ADDRESS TO DUMP BLOCK NUMBERS INTO 6382 41233 3023 DCA DTBLKP 6383 41234 2015 ISZ A15 6384 41235 1415 TAD I A15 /USER WORD 1 -- UNIT, DIR, FUNC. 6385 41236 3025 DCA DTCOM 6386 41237 1415 TAD I A15 /USER WORD 2 -- BLOCK NUMBER WANTED 6387 41240 3024 DCA DTBLK 6388 41241 1415 TAD I A15 /USER WORD 3 -- USER'S C.A. 6389 41242 3026 DCA DTUCA 6390 41243 1025 TAD DTCOM /DIRECTION FOR THIS OPERATION 6391 41244 0041 AND K0400 6392 41245 7740 K7740, SZA SMA CLA 6393 41246 1317 TAD DTREV 6394 41247 1051 TAD K0006 /AC=-5 FOR REVERSE R/W; AC=+6 FOR FORWARD R/W 6395 41250 1423 TAD I DTBLKP /GET BLOCK FROM LAST TIME 6396 41251 1046 TAD K0020 /BIAS BY 20 TO AVOID NEG. NUMBERS AND ZERO 6397 41252 7161 STL CIA 6398 41253 1046 TAD K0020 6399 41254 1024 TAD DTBLK /BLOCK WE WANT 6400 41255 7430 SZL 6401 41256 7041 CIA /AC=ABSOLUTE VALUE OF DIFFERENCE 6402 41257 0245 AND K7740 6403 41260 3102 DCA TEMP4 /SAVE THAT RESULT FOR LATER 6404 41261 1025 TAD DTCOM 6405 41262 0112 AND K7000 /SAVE ONLY THE UNIT 6406 41263 7430 SZL /LINK=INITIAL SEARCH DIRECTION 6407 41264 1041 TAD K0400 /SEARCH REVERSE INITIALLY 6408 41265 4723 JMS I DTLOAA /LOAD THE CONTROLLER 6409 41266 1025 TAD DTCOM /LOAD THE DECTAPE BUFFER IF: 6410 41267 0046 AND K0020 / ******* HE'S DOING A WRITE 6411 41270 1102 TAD TEMP4 / ******* THE DESIRED BLOCK IS FAIRLY CLOSE 6412 41271 1021 TAD DTBUF / ******* THE BUFFER IS EMPTY 6413 41272 7640 SZA CLA 6414 41273 5277 JMP DTGO2 /AT LEAST ONE OF THE ABOVE IS FALSE /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 154 6415 41274 4721 JMS I DTGETW /MOVE 201 WORDS FROM USER (CORE OR SWAP TRACK) TO DATFLD 6416 41275 5315 JMP DTGO3 /WAIT FOR THE DISK TO FINISH 6417 41276 2021 ISZ DTBUF /ASSIGN THE BUFFER TO HIM/HER 6418 41277 1320 DTGO2, TAD DTSR3A 6419 41300 3722 DCA I DTXORA /SET UP FOR SEARCH MODE 6420 41301 3030 DCA DTREMB /CLEAR ERROR ACCUMULATOR 6421 41302 6201 CDF 6422 41303 1023 TAD DTBLKP 6423 41304 3434 DCA I DTCAP /SET UP CA FOR THE BLOCK NUMBERS 6424 41305 6213 CIF DATFLD /INHIBIT INTERRUPTS 6425 41306 1104 TAD K0010 /ALL DATA BREAKS ARE TO DATFLD 6426 41307 6774 DTLB 6427 41310 1047 TAD K7770 6428 41311 3432 DCA I DTERRA /ALLOW 10 CHANGES OF DIRECTION 6429 41312 1037 TAD K0214 6430 41313 6764 DTXA /GO, SEARCH, INT. ENABLE 6431 41314 7146 CLL CMA RTL /SET CONTROLLER TIMER FOR 3 SECONDS 6432 41315 3027 DTGO3, DCA DTTIME 6433 41316 5606 JMP I DTGO 6434 6435 41317 7765 DTREV, -13 6436 41320 0636 DTSR3A, DTSR3 6437 41321 1031 DTGETW, DTDATA 6438 41322 0770 DTXORA, DTXOR 6439 41323 1161 DTLOAA, DTLOAD /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 155 6440 6441 41324 0000 DTIMER, 0 6442 41325 4524 JMS I DTRKJA /FIND A JOB IN DECTAPE TIMER WAIT 6443 41326 7776 -2 6444 41327 5361 JMP DTIME3 /ALL DONE 6445 41330 1045 TAD K0005 6446 41331 3101 DCA TEMP3 /POINTER TO TIMER COUNT 6447 41332 7146 DTIME1, CLL CMA RTL /AC=-3 6448 41333 2501 ISZ I TEMP3 /IS HIS/HER TIMER UP? 6449 41334 5325 JMP DTIMER+1 6450 41335 1101 TAD TEMP3 /YES - JAM ON THE BRAKES 6451 41336 3102 DCA TEMP4 /POINT TO USER WORD 1 6452 41337 6213 CIF DATFLD /INHIBIT INTERRUPTS 6453 41340 6761 DTRA /GET STATUS OF CURRENT UNIT 6454 41341 0110 AND K0004 /SAVE ENABLE 6455 41342 7440 SZA /IS IT REALLY DOING SOMETHING? 6456 41343 1105 TAD K0200 /YES - CLEAR GO AND ENABLE 6457 41344 6764 DTXA 6458 41345 1502 TAD I TEMP4 6459 41346 0201 AND K7001 /SAVE UNIT AND CURRENT DIRECTION 6460 41347 1050 TAD K0377 /MOVE THE DIRECTION BIT INTO POSITION 6461 41350 0042 AND K7400 6462 41351 4723 JMS I DTLOAA /STOP HIM/HER!!! 6463 41352 1047 TAD K7770 6464 41353 0502 AND I TEMP4 6465 41354 3502 DCA I TEMP4 /CLEAR "BRAKE" BIT 6466 41355 1100 TAD TEMP2 6467 41356 1476 TAD I TEMP0 6468 41357 3476 DCA I TEMP0 /PUT HIM/HER BACK IN DECTAPE WAIT 6469 41360 5332 JMP DTIME1 /CHECK FOR OTHER DRIVES TO STOP 6470 41361 1102 DTIME3, TAD TEMP4 6471 41362 7650 SNA CLA 6472 41363 5371 JMP DTIME4 /NOTYING STOPPED THIS TIME 6473 41364 1027 TAD DTTIME /WAS ANYTHING IMPORTANT GOING ON? 6474 41365 7640 SZA CLA 6475 41366 1015 TAD A15 /YES - LET'S GET BACK TO IT 6476 41367 4431 JMS I DTGOA /START SOMETHING 6477 41370 5724 DTIMEX, JMP I DTIMER 6478 41371 6213 DTIME4, CIF DATFLD /INHIBIT INTERRUPTS 6479 41372 1027 TAD DTTIME /IS THE CONTROLLER BUSY? 6480 41373 7640 SZA CLA /NO 6481 41374 2027 ISZ DTTIME /YES - BUMP CONTROLLER TIMER 6482 41375 5724 JMP I DTIMER 6483 41376 6761 DTRA /IT'S HUNG 6484 41377 0106 AND K0204 6485 41400 6764 DTXA /STOP THE TAPE (IF IT'S EVEN MOVING) 6486 41401 7240 STA 6487 41402 3432 DCA I DTERRA /LET HIM/HER KNOW THE TRANSFER PROBABLY DIDN'T HAPPEN 6488 41403 7001 IAC 6489 41404 3021 DCA DTBUF 6490 41405 3025 DCA DTCOM 6491 41406 1020 TAD DTJOB 6492 41407 4213 JMS DTRKER /REPORT THE ERROR & SCHEDULE LEVEL 2 6493 41410 5743 DTL20 6494 41411 5612 JMP I .+1 /BACK THROUGH THE TIMER CODE 6495 41412 1370 DTIMEX /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 156 6496 6497 1410 FCE1= .+1&7770 6498 41413 0000 DTRKER, 0 6499 41414 6203 CIF CDF 6500 41415 4465 JMS I DTRKHA /REPORT THE HUNG DEVICE 6501 41416 1613 TAD I DTRKER /GET THE L2 DISPATCH ADDRESS 6502 41417 2213 ISZ DTRKER /BUMP PAST THE ARG. 6503 41420 6203 CIF CDF 6504 41421 4471 JMS I QUEUE1 /PUT IT ON LEVEL 2 QUEUE 6505 41422 5613 JMP I DTRKER 6506 6507 41423 3100 UUDTRK, DCA TEMP2 6508 41424 1516 TAD I L2SAP /GET USER AC 6509 41425 3077 DCA TEMP1 6510 41426 7420 SNL /DON'T CLEAR THE AC IF IT'S AN RK05 REQUEST 6511 41427 3516 DCA I L2SAP /CLEAR HIS/HER AC 6512 41430 1523 TAD I UDFP /GET THE "CDF" FOR HIS/HER FIELD 6513 41431 3120 DCA UDF1+1 6514 41432 4117 JMS UDF1 /CHANGE TO USER FIELD 6515 41433 1477 TAD I TEMP1 /GET WORD 1 OF HIS/HER PARAMETERS 6516 41434 7430 SZL /RK05? 6517 41435 5270 JMP URK05 /YES 6518 41436 7006 RTL 6519 41437 7006 RTL 6520 41440 0103 AND K0007 /AC=UNIT NUMBER 6521 41441 1274 UDTXAD, TAD DTDEVA /INDEX INTO THE DEVICE TABLE 6522 41442 3246 DCA UDTDDB 6523 41443 6211 DATFLD 6524 41444 6202 CIF /FIELD 0 ROUTINE 6525 41445 4470 JMS I DTCHKA /SEE IF HE OWNS THIS UNIT 6526 41446 0000 UDTDDB, 0 6527 41447 7240 STA 6528 41450 1077 TAD TEMP1 6529 41451 3016 DCA A16 6530 41452 1646 TAD I UDTDDB 6531 41453 1115 TAD K0003 /SET UP TO MOVE PARAMETERS 6532 41454 3017 DCA A17 6533 41455 7146 CLL CMA RTL /L=1; AC=-3 6534 41456 4472 JMS I BLTF1A /MOVE 3 WORDS FROM UDF TO DATFLD 6535 41457 1646 TAD I UDTDDB 6536 41460 1100 TAD TEMP2 6537 41461 4466 JMS I WAIT2 /SET WAIT 2 CONDITION FOR DECTAPE OR RK05 6538 41462 1100 TAD TEMP2 6539 41463 7112 CLL RTR 6540 41464 7630 SZL CLA /RK05? 6541 41465 5374 JMP RK05GO /YES 6542 41466 4431 JMS I DTGOA /NO - TRY TO START THE DECTAPE 6543 41467 5165 WAITF1 6544 6545 41470 7110 URK05, CLL RAR 6546 41471 0115 AND K0003 /RK05 UNIT # 6547 41472 1104 TAD K0010 /DISPLACE TO RK05 DDB'S 6548 41473 5241 JMP UDTXAD 6549 41474 3035 DTDEVA, DEVTBE+5 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 157 6550 6551 /SEARCH FOR A JOB WAITING FOR A "WAIT 2" CONDITION 6552 /CALLING SEQUENCE: 6553 / AC=0 COMPLETE PASS; AC NON-ZERO FINISH CURRENT PASS 6554 / JMS DTRKJB 6555 / MINUS WAIT CONDITION NUMBER 6556 / RETURN - NO JOBS FOUND 6557 / RETURN - CONTENTS OF WAIT 2 IN AC 6558 6559 41475 0000 DTRKJB, 0 6560 41476 7640 SZA CLA /DO WE WANT A FULL PASS? 6561 41477 5325 JMP DTRK2 /NO - JUST COMPLETE FROM WHERE WE LEFT OFF 6562 41500 1122 TAD JOBCNT 6563 41501 3077 DCA TEMP1 /SET COUNT FOR JOBMAX 6564 41502 1014 DTRK1, TAD IX4 /CHECK POSITION OF RING POINTER 6565 41503 1331 TAD DTRKEN 6566 41504 7640 SZA CLA 6567 41505 5310 JMP .+3 6568 41506 1073 TAD JOBTAB /RESET RING POINTER 6569 41507 3014 DCA IX4 6570 41510 1414 TAD I IX4 6571 41511 7450 SNA /IS THIS JOB DEFINED? 6572 41512 5325 JMP DTRK2 /NO 6573 41513 1045 TAD K0005 /POINT AT WAIT 2 6574 41514 3076 DCA TEMP0 6575 41515 1476 TAD I TEMP0 6576 41516 0103 AND K0007 6577 41517 1675 TAD I DTRKJB 6578 41520 7640 SZA CLA /IS HE WAITING FOR OUR CONDITION? 6579 41521 5325 JMP DTRK2 /NOPE 6580 41522 1476 TAD I TEMP0 /PUT THE CONTENTS OF WAIT 2 IN THE AC 6581 41523 2275 ISZ DTRKJB /CAUSE SKIP ON EXIT 6582 41524 5327 JMP DTRK3 6583 41525 2077 DTRK2, ISZ TEMP1 /MORE? 6584 41526 5302 JMP DTRK1 6585 41527 2275 DTRK3, ISZ DTRKJB /INDEX PAST ARGUMENT ON RETURN 6586 41530 5675 JMP I DTRKJB 6587 6588 41531 4702 DTRKEN, -CLKTBL+1 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 158 6589 6590 /MOVE DATA TO/FROM DATFLD FROM/TO USER CORE 6591 / USER'S POINTER IN "A16" 6592 / DATFLD POINTER IN "A17" 6593 /CALLING SEQUENCE: 6594 / AC=-NUMBER OF WORDS; LINK=0 FROM DATFLD TO USER, LINK=1 FROM USER TO DATFLD 6595 / JMS BLTF1 6596 / RETURN 6597 41532 0000 BLTF1, 0 6598 41533 3077 DCA TEMP1 /SAVE NUMBER OF WORDS TO MOVE 6599 41534 7420 BL0, SNL /WHICH DIRECTION? 6600 41535 5343 JMP BL1 6601 41536 4117 JMS UDF1 /FROM USER 6602 41537 1416 TAD I A16 6603 41540 6211 DATFLD /TO DATFLD 6604 41541 3417 DCA I A17 6605 41542 5347 JMP BL2 6606 41543 1417 BL1, TAD I A17 /FROM DATFLD 6607 41544 4117 JMS UDF1 6608 41545 3416 DCA I A16 /TO USER 6609 41546 6211 DATFLD 6610 41547 2077 BL2, ISZ TEMP1 /MORE? 6611 41550 5334 JMP BL0 /YES 6612 41551 5732 JMP I BLTF1 6613 6614 41552 0000 WAKEUP, 0 6615 41553 2125 ISZ F1SCH /SET FLAG TO SCHEDULE THIS USER IMMEDIATELY IF POSSIBLE 6616 41554 4141 JMS GETTBA /FIND STR1 6617 41555 0001 JOBSTS+1 6618 41556 7344 CLL STA RAL /AC=7776 6619 41557 0476 AND I TEMP0 /CLEAR JSWAIT 6620 41560 7001 IAC 6621 41561 3476 DCA I TEMP0 /NOW WE CAN BE SURE THAT IT IS SET 6622 41562 2076 ISZ TEMP0 /NOW UPDATE THE DEVICE STATUS REGISTER 6623 41563 1752 TAD I WAKEUP 6624 41564 3476 DCA I TEMP0 /THE NEW D.S.R. 6625 41565 2076 ISZ TEMP0 6626 41566 2476 ISZ I TEMP0 /TURN ON DUMMY WAIT BIT IN WAIT MASK 1 6627 41567 2076 ISZ TEMP0 6628 41570 3476 DCA I TEMP0 /TAKE HIM/HER OUT OF WAIT 6629 41571 2352 ISZ WAKEUP 6630 41572 5752 JMP I WAKEUP /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 159 6631 6632 1600 FCB2= .+7&7770 6633 41573 2570 RKREDO, REDO0 6634 41574 6203 RK05GO, CIF CDF 6635 41575 1054 TAD RKJOB /WHO OWNS THE CONTROLLER? 6636 41576 7640 SZA CLA 6637 41577 5773 JMP I RKREDO /HE'LL HAVE TO WAIT 6638 41600 1560 TAD I JOB 6639 41601 3054 DCA RKJOB /HE NOW OWNS THE CONTROLLER 6640 41602 3516 DCA I L2SAP /ZERO AC IN CASE TRANSFER DOESN'T START 6641 41603 6213 CIF DATFLD 6642 41604 1054 TAD RKJOB 6643 41605 4141 JMS GETTBA /GET WAIT 2 6644 41606 0004 JOBWMK+1 6645 41607 7146 CLL CMA RTL /AC=-3 6646 41610 3240 DCA RKERR /3 TRIES ON ERROR 6647 41611 3061 DCA RKBLKS /CLEAR SUCCESSFULL TRANSFER COUNTER 6648 41612 4265 JMS USRLOK /LOCK HIM/HER IN HIS/HER FIELD 6649 41613 3055 DCA RKCORE /SAVE THE CORTBL POINTER 6650 41614 1476 TAD I TEMP0 /POINTS TO DDB WORD 4 (-1) 6651 41615 4651 JMS I RKGOA /START UP THE RK05 DISK 6652 41616 7640 SZA CLA 6653 41617 5223 JMP RKL21 /DIDN'T EVEN GET OFF THE GROUND 6654 41620 7344 CLL STA RAL 6655 41621 3062 DCA RKTIME /SET TIMER FOR 2 SECONDS 6656 41622 5165 WAITF1 6657 41623 6001 RKL21, ION 6658 41624 6201 CDF 6659 41625 7352 CLL STA RTR 6660 41626 0455 AND I RKCORE 6661 41627 3455 DCA I RKCORE /UNLOCK HIS/HER FIELD 6662 41630 3055 DCA RKCORE 6663 41631 1054 TAD RKJOB 6664 41632 4141 JMS GETTBA /FIND HIS/HER AC 6665 41633 0013 JOBREG+2 6666 41634 1061 TAD RKBLKS 6667 41635 3476 DCA I TEMP0 /PASS NUMBER OF BLOCKS TRANSFERRED BACK TO THE USER 6668 41636 1054 TAD RKJOB 6669 41637 4467 RKEND2, JMS I AWAKEN /TAKE HIM/HER OUT OF WAIT STATUS 6670 41640 0000 RKERR, 0 6671 41641 3054 DCA RKJOB /FREE THE CONTROLLER 6672 41642 4524 JMS I DTRKJA /LOOK FOR OTHERS WAITING FOR THE CONTROLLER 6673 41643 7775 -3 6674 41644 5126 EXITF1 /NOBODY ELSE WANTS IT 6675 41645 0047 AND K7770 6676 41646 3013 DCA IX3 6677 41647 1413 TAD I IX3 /EXTRACT THE JOB # FROM THE DDB 6678 41650 5237 JMP RKEND2 6679 41651 2070 RKGOA, RKGO 6680 1650 FCE2= .+1&7770 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 160 6681 6682 6683 /ROUTINE TO SET A WAIT 2 CONDITION FOR THE CURRENT USER 6684 / (FOR DECTAPE, RK05, OR CARDREADER) 6685 / ENTER WITH DESIRED WAIT 2 STATUS IN THE AC 6686 6687 41652 0000 WAITS2, 0 6688 41653 3100 DCA TEMP2 6689 41654 6201 CDF 6690 41655 1560 TAD I JOB /GET USER JOB NUMBER 6691 41656 4141 JMS GETTBA 6692 41657 0003 JOBWMK 6693 41660 3476 DCA I TEMP0 /CLEAR WAIT MASK 1 6694 41661 2076 ISZ TEMP0 6695 41662 1100 TAD TEMP2 /GET WAIT NUMBER 6696 41663 3476 DCA I TEMP0 /NOW HE'S WAITING 6697 41664 5652 JMP I WAITS2 6698 6699 /ROUTINE TO LOCK CURRENT USER IN HIS/HER CORE FIELD 6700 / RETURNS WITH CORTBL POINTER IN AC 6701 41665 0000 USRLOK, 0 6702 41666 6201 CDF 6703 41667 1701 TAD I L2SFP /POINTER TO LEVEL 2 SAVE FIELD 6704 41670 0103 AND K0007 /JUST THE FIELD 6705 41671 1162 TAD CORTBA /DISPLACEMENT INTO THE CORE TABLE 6706 41672 3100 DCA TEMP2 6707 41673 7132 STL RTR /AC=2000 6708 41674 1500 TAD I TEMP2 6709 41675 3500 DCA I TEMP2 /LOCK IN CORE 6710 41676 6211 DATFLD 6711 41677 1100 TAD TEMP2 /NOW RETURN WITH POINTER INTO CORE TABLE 6712 41700 5665 JMP I USRLOK 6713 41701 0103 L2SFP, L2SF 6714 6715 1710 FCB3= .+7&7770 6716 41702 0000 CDCNT, 0 6717 41703 0000 CDCORE, 0 6718 41704 2417 CDTIMR, TIMCDR 6719 41705 7152 CDL21, CLL CMA RTR /AC=5777 6720 41706 0703 AND I CDCORE 6721 41707 3703 DCA I CDCORE /UNLOCK THE CORE FIELD 6722 41710 1326 TAD CDJOB 6723 41711 4141 JMS GETTBA /FIND HIS/HER AC 6724 41712 0013 JOBREG+2 6725 41713 1302 TAD CDCNT 6726 41714 3476 DCA I TEMP0 /PUT THE COLUMN COUNT IN HIS/HER AC 6727 41715 1326 TAD CDJOB 6728 41716 4467 JMS I AWAKEN /TAKE HIM/HER OUT OF WAIT STATUS 6729 41717 0000 CDBUF, 0 6730 41720 5126 EXITF1 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 161 6731 6732 41721 1704 CDL11, TAD I CDTIMR 6733 41722 7650 SNA CLA /WERE WE EXPECTING AN INTERRUPT? 6734 41723 5333 JMP CDIOT /NO 6735 41724 2302 ISZ CDCNT /COUNT A COLUMN 6736 41725 2317 ISZ CDBUF /BUMP THE USER'S POINTER 6737 41726 0000 CDJOB, 0 /JOB OWNING THE CARD READER - (COVERS THE "ISZ SKIP") 6738 41727 0000 CDREAD, .-. /THE PROPER READ IOT IS PLACED HERE 6739 41730 0000 CDFLD, .-. /CDF TO THE USER'S FIELD 6740 41731 3717 DCA I CDBUF /STASH A COLUMN IN THE USER'S BUFFER 6741 41732 5136 INTRTN 6742 41733 6632 CDIOT, RCRA /CLEAR UNWANTED INTERRUPT 6743 41734 7200 CLA 6744 41735 5136 INTRTN 6745 41736 7104 UUCDR, CLL RAL /TIMES 2 6746 41737 1333 TAD CDIOT /CONSTRUCT READ IOT 6747 41740 3327 DCA CDREAD /EITHER ALPHA, BINARY, OR COMPRESSED (8E ONLY) 6748 41741 1516 TAD I L2SAP 6749 41742 3317 DCA CDBUF /SAVE THE USER'S BUFFER POINTER 6750 41743 3516 DCA I L2SAP /CLEAR USER AC - IN CASE THE READER ISN'T READY 6751 41744 1523 TAD I UDFP 6752 41745 3330 DCA CDFLD /SAVE CDF TO USER'S FIELD 6753 41746 1560 TAD I JOB 6754 41747 3326 DCA CDJOB 6755 41750 3302 DCA CDCNT /ZERO COLUMN COUNT 6756 41751 6002 IOF 6757 41752 5356 IFZERO CPU&7776 < JMP .+4 > 6758 IFNZRO CPU&7776 < RCTF > /CLEAR 8E TRANSITION FLAG 6759 41753 7001 IAC 6760 41754 6635 RCNO /ENABLE CARD READER INTERRUPTS 6761 41755 7200 CLA 6762 41756 6672 RCSE /START CARD READER 6763 41757 5370 JMP UUCDRB /NOT READY - PUT HIM/HER TO SLEEP BEFORE CONTINUING 6764 41760 4265 JMS USRLOK /LOCK HIM/HER IN HIS/HER FIELD 6765 41761 3303 DCA CDCORE /SAVE POINTER TO CORTBL 6766 41762 1110 TAD K0004 6767 41763 4466 JMS I WAIT2 /MAKE HIM/HER WAIT FOR THE CARD READER 6768 41764 6203 CIF CDF 6769 41765 7144 CLL CMA RAL /AC=-2 6770 41766 3704 DCA I CDTIMR /SET CARD READER TIMER 6771 41767 5567 JMP I WAIT1 6772 41770 6203 UUCDRB, CIF CDF 6773 41771 5463 JMP I SLEEPB /PUT HIM/HER TO SLEEP FOR A COUPLE OF SECONDS 6774 2000 *2000 6775 2000 FCE3= .&7770 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 162 6776 6777 2000 FCB4= .+7&7770 6778 42000 6745 RKL11, DRST /GET CONTROLLER STATUS 6779 42001 7104 CLL RAL /IGNORE THE DONE BIT 6780 42002 7440 SZA 6781 42003 5221 JMP RKSR1 /ERROR!!!!! 6782 42004 2061 ISZ RKBLKS /COUNT A SUCCESSFUL TRANSFER 6783 42005 1352 TAD RKCMD 6784 42006 7450 SNA /ARE WE FINISHED? 6785 42007 5224 JMP RKSR2 /YES 6786 42010 6746 DLDC /LOAD THE NEW COMMAND 6787 42011 1057 TAD RKSECT 6788 42012 6743 DLAG /LOAD THE NEW SECTOR - WE'RE OFF AND RUNNING AGAIN 6789 42013 4363 JMS RKNXT /SET UP FOR THE NEXT BLOCK (IF ANY) 6790 42014 7344 CLL STA RAL 6791 42015 3062 DCA RKTIME /SET CONTROLLER TIMER FOR 2 MORE SECONDS 6792 42016 7346 CLL STA RTL 6793 42017 3464 DCA I RKERRA /THREE ERRORS 6794 42020 5136 INTRTN 6795 6796 42021 2464 RKSR1, ISZ I RKERRA 6797 42022 5231 JMP RKSR4 /STILL OK TO RETRY 6798 42023 6745 DRST 6799 42024 3464 RKSR2, DCA I RKERRA /FINAL STATUS FOR THE USER 6800 42025 6746 DLDC /CLEAR CONTROLLER STATUS AND COMMAND REGISTERS 6801 42026 3062 DCA RKTIME 6802 42027 1266 TAD RKL2 /SCHEDULE LEVEL 2 6803 42030 5136 INTRTN 6804 42031 0265 RKSR4, AND K1012 /SAVE SPECIAL CASE ERROR BITS 6805 42032 7450 SNA 6806 42033 5256 RKSRE, JMP RKSR5+1 /DON'T RECAL. OR PUT CURRENT JOB TO SLEEP 6807 42034 0104 AND K0010 6808 42035 7640 SZA CLA 6809 42036 5255 JMP RKSR5 /PUT CURRENT JOB TO SLEEP AND RE-TRY 6810 42037 7001 IAC 6811 42040 6742 DCLR /IN CASE WE HAVE SOMETHING REALLY IN TROUBLE 6812 42041 1056 TAD RKCOM 6813 42042 0051 AND K0006 /SAVE ONLY THE UNIT # 6814 42043 1053 TAD K0600 /ENABLE INTERRUPT ON SEEK COMPLETION 6815 42044 6746 DLDC 6816 42045 7126 STL RTL 6817 42046 6742 DCLR /RE-CALIBRATE 6818 42047 1233 TAD RKSRE 6819 42050 3200 DCA RKL11 /CHANGE LEVEL 1 6820 42051 7346 CLL STA RTL /ALLOW 3 SECONDS FOR THE RE-CALIBRATE 6821 42052 3062 DCA RKTIME 6822 42053 6742 DCLR 6823 42054 5136 INTRTN /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 163 6824 6825 42055 1063 RKSR5, TAD SLEEPB 6826 42056 3075 DCA INTS2 6827 42057 7146 CLL CMA RTL /AC=-3 6828 42060 1013 TAD IX3 /POINTER TO DDB WORD 4 (-1) 6829 42061 4270 JMS RKGO /RE-TRY 6830 42062 7450 SNA /ANYTHING BAD? 6831 42063 1075 TAD INTS2 /NO - HOW ABOUT PUTTING SOMEONE TO SLEEP? 6832 42064 5136 INTRTN 6833 42065 1012 K1012, 1012 6834 42066 4565 RKL2, RKL20 6835 42067 1050 RKFLD, -CORTBL+51 6836 42070 0000 RKGO, 0 6837 42071 3013 DCA IX3 /SAVE THE DDB POINTER 6838 42072 7001 IAC 6839 42073 6742 DCLR /CLEAR THE CONTROLLER 6840 42074 1413 TAD I IX3 /USER WORD 1 6841 42075 7112 CLL RTR 6842 42076 7010 RAR 6843 42077 3056 DCA RKCOM /SAVE COMMAND DIVIDED BY 10 6844 42100 1056 TAD RKCOM 6845 42101 0044 AND K0037 /PAGE COUNT 6846 42102 7450 SNA 6847 42103 1107 TAD K0040 /FOR 0 OR 40 GIVE HIM/HER 40 6848 42104 7040 CMA 6849 42105 1061 TAD RKBLKS 6850 42106 1061 TAD RKBLKS /ADD NUMBER OF PAGES ALREADY TRANSFERRED 6851 42107 3060 DCA RKCNT 6852 42110 1056 TAD RKCOM 6853 42111 0042 AND K7400 /SAVE FUNCTION, DRIVE, AND HI ORDER SECTOR BIT 6854 42112 1055 TAD RKCORE /POINTER TO CORTBL ENTRY 6855 42113 1267 TAD RKFLD /EXTRACT FIELD NUMBER AND INSERT INTERRUPT ENABLE AND HALF BLOCK BITS 6856 42114 7026 CML RTL /"RKFLD" COMPLEMENTED THE LINK 6857 42115 7004 RAL 6858 42116 3056 DCA RKCOM /SAVE THE CONSTRUCTED COMMAND REGISTER 6859 42117 1061 TAD RKBLKS /NUMBER OF SECTORS ALREADY TRANSFERRED 6860 42120 1413 TAD I IX3 6861 42121 3057 DCA RKSECT /STARTING SECTOR NUMBER FROM THE USER 6862 42122 7430 SZL 6863 42123 2056 ISZ RKCOM /BUMP HI ORDER BIT 6864 42124 1061 TAD RKBLKS /NUMBER OF BLOCKS ALREADY TRANSFERRED 6865 42125 7112 CLL RTR /TIMES 400 6866 42126 7012 RTR 6867 42127 7010 RAR 6868 42130 1413 TAD I IX3 6869 42131 7001 IAC /WE ADD ONE SINCE THE CONTROLLER WANTS THE REAL ADDRESS 6870 42132 6744 DLCA /LOAD USER'S CA INTO THE CONTROLLER 6871 42133 4352 JMS RKCMD /GENERATE FIRST COMMAND 6872 42134 6002 IOF 6873 42135 6746 DLDC /LOAD CONTROLLER COMMAND REGISTER 6874 42136 1057 TAD RKSECT 6875 42137 6743 DLAG /LOAD IN THE DESIRED SECTOR - WE ARE OFF AND RUNNING 6876 42140 4363 JMS RKNXT /SET UP FOR THE NEXT SECTOR (IF ANY) 6877 42141 1345 TAD RKDRST 6878 42142 3200 DCA RKL11 /FIX FIRST WORD OF INTERRUPT SERVICE 6879 42143 6741 DSKP /ARE WE TRYING TO DO SOMETHING BAD? 6880 42144 5670 JMP I RKGO /NO - EVERYTHING IS PEACHY /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 164 6881 42145 6745 RKDRST, DRST 6882 42146 3464 DCA I RKERRA /SAVE ERROR STATUS - NO RE-TRIES WILL BE MADE 6883 42147 6746 DLDC /CLEAR CONTROLLER STATUS AND COMMAND REGISTERS 6884 42150 1266 TAD RKL2 /RETURN WITH L2 DISPATCH 6885 42151 5670 JMP I RKGO 6886 6887 42152 0000 RKCMD, 0 6888 42153 2060 ISZ RKCNT 6889 42154 1060 TAD RKCNT 6890 42155 7700 SMA CLA /ANY MORE BLOCKS TO GO? 6891 42156 5376 JMP RKDONE /NO - CLOSE IT OUT 6892 42157 2060 ISZ RKCNT /HALF BLOCK? 6893 42160 1113 TAD K7700 /NO - REMOVE THE HALF BLOCK BIT FROM THE COMMAND 6894 42161 1056 TAD RKCOM /GET THE COMMAND 6895 42162 5752 JMP I RKCMD 6896 6897 42163 0000 RKNXT, 0 6898 42164 2057 ISZ RKSECT /BUMP SECTOR 6899 42165 1057 TAD RKSECT 6900 42166 7450 SNA 6901 42167 2056 ISZ RKCOM /BUMP HI-ORDER SECTOR BIT 6902 42170 0044 AND K0037 6903 42171 7640 SZA CLA /WILL WE SEEK ON THIS ONE? 6904 42172 1052 TAD K1000 /NO - DO A READ ALL OR WRITE ALL 6905 42173 3074 DCA INTS1 6906 42174 4352 JMS RKCMD /CHECK FOR HALF BLOCK AND COMPLETION 6907 42175 1074 TAD INTS1 6908 42176 3352 RKDONE, DCA RKCMD /SAVE THE NEW COMMAND REGISTER 6909 42177 5763 JMP I RKNXT 6910 PAGE 6911 2200 FCE4= .&7770 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 165 6912 6913 IFNZRO DC08A < 6914 42200 0000 T8ASSM, 0 6915 42201 0227 AND T83770 /THE CHARACTER ONLY 6916 42202 7450 SNA 6917 42203 5213 JMP T8ASS1 /IGNORE NULL CHARACTERS 6918 42204 7112 CLL RTR /BRING THE CHARACTER INTO POSITION 6919 42205 7010 RAR 6920 42206 0226 AND T80177 6921 42207 1105 TAD K0200 /FORCE ON THE PARITY BIT 6922 42210 6202 CIF 00 /STASH IT AWAY 6923 42211 4630 JMS I T8IN1A /THAT'S DONE IN FIELD 0 6924 42212 6001 ION 6925 42213 7346 T8ASS1, CLL STA RTL /AC=-3 6926 42214 1200 TAD T8ASSM 6927 42215 3231 DCA T8T /POINTS TO THE LSW 6928 42216 1631 TAD I T8T 6929 42217 0227 AND T83770 /SAVE ONLY THE LINE NUMBER 6930 42220 3631 DCA I T8T 6931 42221 2231 ISZ T8T /POINTS TO THE CAW 6932 42222 7132 STL RTR /AC=2000 6933 42223 3631 DCA I T8T /RESET THE FLAG BIT 6934 42224 6461 TTIR /BUMP THE "R" REGISTER 6935 42225 5600 JMP I T8ASSM 6936 42226 0177 T80177, 177 6937 42227 3770 T83770, 3770 6938 42230 3765 T8IN1A, T8IN1 6939 42231 0000 T8T, 0 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 166 6940 6941 42232 6402 T8TTI, TTI 6942 42233 0000 DC08LO^10+0 /LSW LINE # PT08+DC08LO+1 6943 42234 2000 2000 /CAW 6944 42235 4200 JMS T8ASSM /CHARACTER FULLY ASSEMBLED 6945 42236 6402 TTI 6946 42237 0010 DC08LO^10+10 /LSW LINE # PT08+DC08LO+2 6947 42240 2000 2000 /CAW 6948 42241 4200 JMS T8ASSM /CHARACTER FULLY ASSEMBLED 6949 42242 6402 TTI 6950 42243 0020 DC08LO^10+20 /LSW LINE # PT08+DC08LO+3 6951 42244 2000 2000 /CAW 6952 42245 4200 JMS T8ASSM /CHARACTER FULLY ASSEMBLED 6953 42246 6402 TTI 6954 42247 0030 DC08LO^10+30 /LSW LINE # PT08+DC08LO+4 6955 42250 2000 2000 /CAW 6956 42251 4200 JMS T8ASSM /CHARACTER FULLY ASSEMBLED 6957 42252 6402 TTI 6958 42253 0040 DC08LO^10+40 /LSW LINE # PT08+DC08LO+5 6959 42254 2000 2000 /CAW 6960 42255 4200 JMS T8ASSM /CHARACTER FULLY ASSEMBLED 6961 42256 6402 TTI 6962 42257 0050 DC08LO^10+50 /LSW LINE # PT08+DC08LO+6 6963 42260 2000 2000 /CAW 6964 42261 4200 JMS T8ASSM /CHARACTER FULLY ASSEMBLED 6965 42262 6402 TTI 6966 42263 0060 DC08LO^10+60 /LSW LINE # PT08+DC08LO+7 6967 42264 2000 2000 /CAW 6968 42265 4200 JMS T8ASSM /CHARACTER FULLY ASSEMBLED 6969 42266 6402 TTI 6970 42267 0070 DC08LO^10+70 /LSW LINE # PT08+DC08LO+10 6971 42270 2000 2000 /CAW 6972 42271 4200 JMS T8ASSM /CHARACTER FULLY ASSEMBLED 6973 42272 6402 TTI 6974 42273 0100 DC08LO^10+100 /LSW LINE # PT08+DC08LO+11 6975 42274 2000 2000 /CAW 6976 42275 4200 JMS T8ASSM /CHARACTER FULLY ASSEMBLED 6977 42276 6402 TTI 6978 42277 0110 DC08LO^10+110 /LSW LINE # PT08+DC08LO+12 6979 42300 2000 2000 /CAW 6980 42301 4200 JMS T8ASSM /CHARACTER FULLY ASSEMBLED 6981 42302 6402 TTI 6982 42303 0120 DC08LO^10+120 /LSW LINE # PT08+DC08LO+13 6983 42304 2000 2000 /CAW 6984 42305 4200 JMS T8ASSM /CHARACTER FULLY ASSEMBLED 6985 42306 6402 TTI 6986 42307 0130 DC08LO^10+130 /LSW LINE # PT08+DC08LO+14 6987 42310 2000 2000 /CAW 6988 42311 4200 JMS T8ASSM /CHARACTER FULLY ASSEMBLED 6989 42312 6402 TTI 6990 42313 0140 DC08LO^10+140 /LSW LINE # PT08+DC08LO+15 6991 42314 2000 2000 /CAW 6992 42315 4200 JMS T8ASSM /CHARACTER FULLY ASSEMBLED 6993 42316 6402 TTI 6994 42317 0150 DC08LO^10+150 /LSW LINE # PT08+DC08LO+16 6995 42320 2000 2000 /CAW 6996 42321 4200 JMS T8ASSM /CHARACTER FULLY ASSEMBLED /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 167 6997 42322 6402 TTI 6998 42323 0160 DC08LO^10+160 /LSW LINE # PT08+DC08LO+17 6999 42324 2000 2000 /CAW 7000 42325 4200 JMS T8ASSM /CHARACTER FULLY ASSEMBLED 7001 42326 6402 TTI 7002 42327 0170 DC08LO^10+170 /LSW LINE # PT08+DC08LO+20 7003 42330 2000 2000 /CAW 7004 42331 4200 JMS T8ASSM /CHARACTER FULLY ASSEMBLED 7005 42332 6402 TTI 7006 42333 0200 DC08LO^10+200 /LSW LINE # PT08+DC08LO+21 7007 42334 2000 2000 /CAW 7008 42335 4200 JMS T8ASSM /CHARACTER FULLY ASSEMBLED 7009 42336 6402 TTI 7010 42337 0210 DC08LO^10+210 /LSW LINE # PT08+DC08LO+22 7011 42340 2000 2000 /CAW 7012 42341 4200 JMS T8ASSM /CHARACTER FULLY ASSEMBLED 7013 42342 6402 TTI 7014 42343 0220 DC08LO^10+220 /LSW LINE # PT08+DC08LO+23 7015 42344 2000 2000 /CAW 7016 42345 4200 JMS T8ASSM /CHARACTER FULLY ASSEMBLED 7017 42346 6402 TTI 7018 42347 0230 DC08LO^10+230 /LSW LINE # PT08+DC08LO+24 7019 42350 2000 2000 /CAW 7020 42351 4200 JMS T8ASSM /CHARACTER FULLY ASSEMBLED 7021 2346 *T8TTI+DC08A+DC08A+DC08A+DC08A 7022 42346 6202 CIF 00 7023 42347 5750 JMP I .+1 /BACK TO THE REST OF THE DC08A SERVICE 7024 42350 3650 T8OUT1 7025 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 168 7026 7027 2360 FCB5= .+7&7770 7028 2360 *2360 7029 7030 2360 FCE5= .&7770 7031 7032 42360 0000 DFCLS0, ZBLOCK 4 42361 0000 42362 0000 42363 0000 7033 42364 0000 DFCNO0, ZBLOCK 4 42365 0000 42366 0000 42367 0000 7034 42370 0000 DFL2S0, ZBLOCK 4 42371 0000 42372 0000 42373 0000 7035 42374 7777 -1 /TO END TABLE 7036 42375 DFL2DL= . 7037 42375 0011 1-DC08LO+PT08+KL8;11-DC08LO+PT08+KL8 42376 0021 7038 42377 0031 21-DC08LO+PT08+KL8;31-DC08LO+PT08+KL8 42400 0041 7039 7040 7041 42401 6721 DFRING, CTG /CLEAR THE GROUP COUNTER 7042 42402 1114 TAD K7774 7043 42403 3076 DCA TEMP0 /COUNTER FOR GROUP SEARCH 7044 42404 6702 DFRNG1, RRS /READ RING STATUS 7045 42405 7440 SZA 7046 42406 6722 STR /ACKNOWLEDGE RING(S) 7047 42407 7200 CLA 7048 42410 6731 ITG /INCREMENT THE GROUP COUNTER 7049 42411 2076 ISZ TEMP0 /LOOKED AT ALL LINES? 7050 42412 5204 JMP DFRNG1 /NO, KEEP LOOKING 7051 42413 7240 STA 7052 42414 6002 IOF 7053 42415 3617 DCA I .+2 /DATA FLD=0 HERE, I HOPE. RESET COUNTER 7054 42416 5126 EXITF1 7055 42417 0114 D6FLAG 7056 7057 42420 0000 DFCLSI, 0 7058 42421 0000 DFCNWI, 0 7059 42422 2360 DFCLST, DFCLS0 7060 42423 2364 DFCNOW, DFCNO0 7061 42424 0000 DFCNTR, 0 7062 42425 0000 DFCSET, 0 7063 42426 1222 TAD DFCLST 7064 42427 3220 DCA DFCLSI /POINTER TO STATUS AT LAST INTERRUPT 7065 42430 1223 TAD DFCNOW 7066 42431 3221 DCA DFCNWI /POINTER TO STATUS AT THIS INTERRUPT 7067 42432 1114 TAD K7774 7068 42433 3224 DCA DFCNTR /COUNTER FOR COMPARISONNS 7069 42434 6721 CTG /CLEAR GROUP COUNTER 7070 42435 5625 JMP I DFCSET /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 169 7071 7072 42436 4225 DFCARR, JMS DFCSET /INITIALIZE STATUS 7073 42437 6712 DFCAR1, RCS /READ CARRIER STATUS 7074 42440 3621 DCA I DFCNWI /PLACE ON TABLE 7075 42441 2221 ISZ DFCNWI 7076 42442 6731 ITG /INCREMENT THE GROUP COUNTER 7077 42443 2224 ISZ DFCNTR /READ ALL FOUR GROUPS? 7078 42444 5237 JMP DFCAR1 /NO, READ NEXT 7079 42445 4225 JMS DFCSET 7080 42446 1371 TAD DFL2ST 7081 42447 3370 DCA DFL2SI 7082 42450 1621 DFCAR2, TAD I DFCNWI 7083 42451 7040 CMA 7084 42452 0620 AND I DFCLSI 7085 42453 7440 SZA /ANY LINES CLEARED? 7086 42454 5300 JMP DFCAR3 /YES, ACKNOWLEDGE 7087 42455 1620 DFCAR5, TAD I DFCLSI 7088 42456 7040 CMA 7089 42457 0621 AND I DFCNWI 7090 42460 7440 SZA 7091 42461 4303 JMS DFCAR6 7092 42462 2220 ISZ DFCLSI 7093 42463 2221 ISZ DFCNWI 7094 42464 2370 ISZ DFL2SI 7095 42465 6731 ITG /INCREMENT THE GROUP COUNTER 7096 42466 2224 ISZ DFCNTR /ALL LINES CHECKED? 7097 42467 5250 JMP DFCAR2 /NO 7098 42470 4225 JMS DFCSET 7099 42471 1621 DFCAR4, TAD I DFCNWI /TRANSFER THIS STATUS TABLE TO LAST 7100 42472 3620 DCA I DFCLSI 7101 42473 2221 ISZ DFCNWI 7102 42474 2220 ISZ DFCLSI 7103 42475 2224 ISZ DFCNTR 7104 42476 5271 JMP DFCAR4 7105 42477 5313 JMP DFL200 7106 7107 42500 6724 DFCAR3, CTR /CLEAR TERMINAL READY 7108 42501 4303 JMS DFCAR6 7109 42502 5255 JMP DFCAR5 /LOOK AT OTHER GROUPS 7110 7111 42503 0000 DFCAR6, 0 7112 42504 3102 DCA TEMP4 /BIT TO SET 7113 42505 1102 TAD TEMP4 7114 42506 7040 CMA 7115 42507 0770 AND I DFL2SI 7116 42510 1102 TAD TEMP4 7117 42511 3770 DCA I DFL2SI 7118 42512 5703 JMP I DFCAR6 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 170 7119 7120 42513 1371 DFL200, TAD DFL2ST /INITIALIZE PSEUDO GROUP CTR 7121 42514 3366 DCA DFL2SG 7122 7123 42515 1047 DFL22, TAD K7770 /EIGHT PHONES 7124 42516 3076 DCA TEMP0 7125 42517 7001 IAC 7126 42520 3077 DCA TEMP1 /SELECT EACH LINE IN GROUP 7127 7128 42521 1766 DFL21, TAD I DFL2SG 7129 42522 7450 SNA 7130 42523 5336 JMP DFL23 7131 42524 7510 SPA 7132 42525 5126 EXITF1 7133 42526 0077 AND TEMP1 7134 42527 7640 SZA CLA 7135 42530 5342 JMP DFL25 7136 7137 42531 1077 DFL26, TAD TEMP1 7138 42532 7104 CLL RAL 7139 42533 3077 DCA TEMP1 7140 42534 2076 ISZ TEMP0 7141 42535 5321 JMP DFL21 7142 42536 3766 DFL23, DCA I DFL2SG 7143 42537 2366 ISZ DFL2SG 7144 42540 5315 JMP DFL22 7145 7146 42541 1405 DFGBLK, GETB 7147 42542 1366 DFL25, TAD DFL2SG 7148 42543 1367 TAD DFL2C 7149 42544 3100 DCA TEMP2 7150 42545 1500 TAD I TEMP2 7151 42546 1076 TAD TEMP0 7152 42547 1104 TAD K0010 7153 42550 7104 CLL RAL 7154 42551 1163 TAD DFVTBA 7155 42552 3101 DCA TEMP3 7156 42553 1501 TAD I TEMP3 7157 42554 7640 SZA CLA 7158 42555 5362 JMP .+5 /YES 7159 42556 1101 TAD TEMP3 7160 42557 6202 CIF 7161 42560 4741 JMS I DFGBLK 7162 42561 5331 JMP DFL26 7163 42562 1101 TAD TEMP3 7164 42563 6203 CIF CDF 7165 42564 4772 JMS I DFUMES 7166 42565 5331 JMP DFL26 7167 7168 42566 0000 DFL2SG, 0 7169 42567 0005 DFL2C, DFL2DL-DFL2S0 7170 0163 DFVTBA= DEVTBA 7171 42570 0000 DFL2SI, 0 7172 42571 2370 DFL2ST, DFL2S0 7173 42572 4114 DFUMES, UHLTMS 7174 > /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 171 7175 7176 2600 *DATA1 7177 /ROUTINE TO DECREMENT TIMERS 7178 /THEY ARE BUMPED ONCE EACH SECOND 7179 /THUS A USER CAN MEASURE UP TO 1 HOUR, 8 MINUTES, 15 SECONDS 7180 7181 42600 0000 TIMER0, 0 7182 42601 2323 ISZ TIMBIG /HAVE WE GONE THROUGH A SECOND YET? 7183 42602 5276 JMP F0TIMT /NO - DID WE FINISH ALL THE TIMERS LAST TIME? 7184 42603 1324 TAD TICSEC /REFRESH SECOND TIMER 7185 42604 3323 DCA TIMBIG 7186 7187 42605 1122 TAD JOBCNT 7188 42606 3102 DCA TIMET1 7189 42607 1325 TAD TIMTB1 /START OF CLKTBL 7190 42610 3100 DCA TIMET2 7191 42611 6211 TIMER1, DATFLD 7192 42612 1500 TAD I TIMET2 7193 42613 7640 SZA CLA 7194 42614 2500 ISZ I TIMET2 7195 42615 5231 JMP TIMER2 7196 42616 1237 TAD TIMEJM /SET TIMER FLAG 7197 42617 1102 TAD TIMET1 7198 42620 4141 JMS GETTBA /GET PTR TO STATUS 1 7199 42621 0001 JOBSTS+1 7200 42622 1076 TAD TEMP0 /DOES THE JOB STILL EXIST? 7201 42623 7650 SNA CLA 7202 42624 5231 JMP TIMER2 /NO 7203 42625 1476 TAD I TEMP0 /YES, SET JSTIME IN STR1 7204 42626 7004 RAL 7205 42627 7130 STL RAR 7206 42630 3476 DCA I TEMP0 7207 42631 2100 TIMER2, ISZ TIMET2 7208 42632 2102 ISZ TIMET1 7209 42633 5211 JMP TIMER1 7210 42634 2174 ISZ UPTIM1 /INDEX LOW ORDER UPTIME 7211 42635 7410 SKP 7212 42636 2173 ISZ UPTIM2 /INDEX HI ORDER UPTIME 7213 42637 0025 TIMEJM, JOBMAX+1 /NOP 7214 42640 5243 IFZERO TC01 < JMP .+3 > 7215 IFNZRO TC01 < STA > 7216 42641 3100 DCA TEMP2 /ENABLE TRANSFER BACK TO DECTAPE CONTROLLER WAIT 7217 42642 4726 JMS I TIMEDT /RUN DECTAPE TIMERS 7218 42643 5257 IFZERO RK05 < JMP F0TIMR > 7219 IFNZRO RK05 < CIF DATFLD > /NO INTERRUPTS 7220 42644 1062 TAD RKTIME 7221 42645 7640 SZA CLA /ACTIVE? 7222 42646 2062 ISZ RKTIME /YES, BUMP TIMER 7223 42647 5257 JMP F0TIMR /ALL IS WELL 7224 42650 7001 IAC 7225 42651 6742 DCLR /STOP WHATEVER IS GOING ON WITH THE RK05 7226 42652 7240 STA 7227 42653 3464 DCA I RKERRA /SHOW THAT TRANSFER WAS TERMINATED 7228 42654 1054 TAD RKJOB 7229 42655 4727 JMS I RKHUNG /REPORT THE ERROR 7230 42656 4565 RKL20 7231 42657 1200 F0TIMR, TAD TIMER0 / VRS: Reconstructed from working binary /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 172 7232 42660 3321 DCA TIMIT 7233 42661 6201 CDF 7234 42662 6002 IOF 7235 42663 1721 TAD I TIMIT 7236 42664 7640 SZA CLA 7237 42665 2721 ISZ I TIMIT 7238 42666 5276 JMP F0TIMT 7239 42667 6001 ION 7240 42670 2321 ISZ TIMIT 7241 42671 1721 TAD I TIMIT 7242 42672 6203 CIF CDF 7243 42673 4471 JMS I QUEUE1 7244 42674 2321 ISZ TIMIT 7245 42675 5306 JMP TIMOUT 7246 42676 6001 F0TIMT, ION 7247 42677 2321 ISZ TIMIT 7248 42700 2321 ISZ TIMIT 7249 42701 1321 TAD TIMIT 7250 42702 7041 CIA 7251 42703 1322 TAD TIME3A 7252 42704 7740 SMA SZA CLA 7253 42705 5261 JMP F0TIMR+2 / VRS: End reconstruction /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 173 7254 7255 /ROUTINE TO DUMP VALUE OF ONE CORE CELL INTO MQ 7256 /RUNS AT EACH SYSTEM TICK 7257 /TO USE, SET THE DESIRED CORE ADDRESS IN THE SWITCH REGISTER 7258 /TO SELECT FIELDS, CLEAR SR TO 0, AND SET THE DESIRED 7259 /FIELD IN THE LOW ORDER BITS OF THE SR. 7260 7261 /THIS MEANS THAT YOU CANNOT ADDRESS LOCATIONS 0,1,2, OR 3 7262 7263 /IF THIS ROUTINE IS RUNNING, THE EAE IS NOT MUCH USE 7264 /TO USER PROGRAMS. SORRY ABOUT THAT. 7265 7266 42706 5317 TIMOUT, JMP TIMEX /LAS /INSERT THE "LAS" (7604) TO ENABLE DISPLAY 7267 42707 0114 AND K7774 /TRYING A FIELD SELECT? 7268 42710 7450 SNA 7269 42711 5330 JMP DISPL1 /YES, GO CHANGE THE FIELD 7270 42712 7604 LAS /NO; WHAT WAS THAT ADDRESS AGAIN? 7271 42713 3076 DCA TEMP0 7272 42714 6201 DISFLD, CDF /ASSUME FIELD 0 TO START 7273 42715 1476 TAD I TEMP0 /PICK UP CONTENTS OF SPECIFIED ADDRESS 7274 42716 7421 MQL /DUMP IT IN THE MQ 7275 42717 6203 TIMEX, CIF CDF /BACK TO FIELD 0 7276 42720 5722 JMP I TIME3A /RETURN 7277 7278 42721 2427 TIMIT, TIMER3 7279 42722 2427 TIME3A, TIMER3 7280 42723 7766 TIMBIG, -TICSPS /ACTIVE COUNTER 7281 42724 7766 TICSEC, -TICSPS /STARTING VALUE OF TIMBIG 7282 0102 TIMET1= TEMP4 7283 0100 TIMET2= TEMP2 7284 42725 3100 TIMTB1, CLKTBL+1 7285 42726 1324 TIMEDT, DTIMER 7286 42727 1413 RKHUNG, DTRKER 7287 7288 42730 7604 DISPL1, LAS /WHAT WAS THAT FIELD AGAIN? 7289 42731 7104 CLL RAL 7290 42732 7006 RTL 7291 42733 1111 TAD K6201 /BUILD FIELD SELECT 7292 42734 3314 DCA DISFLD 7293 42735 5313 JMP DISFLD-1 /NOW GO LOOK 7294 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 174 7295 7296 3050 DEVDMB= JOBTBL-2 7297 2737 *DEVTBL-1 7298 42737 3050 DEVDMB /DUMMY USED BY FIP RELEASE 7299 42740 0000 ZBLOCK DEVTBE-DEVTBL 42741 0000 42742 0000 42743 0000 42744 0000 42745 0000 42746 0000 42747 0000 42750 0000 42751 0000 42752 0000 42753 0000 42754 0000 42755 0000 42756 0000 42757 0000 42760 0000 42761 0000 42762 0000 42763 0000 42764 0000 42765 0000 42766 0000 42767 0000 42770 0000 42771 0000 42772 0000 42773 0000 42774 0000 42775 0000 42776 0000 42777 0000 43000 0000 43001 0000 43002 0000 43003 0000 43004 0000 43005 0000 43006 0000 43007 0000 43010 0000 43011 0000 43012 0000 43013 0000 43014 0000 43015 0000 43016 0000 43017 0000 43020 0000 43021 0000 43022 0000 43023 0000 43024 0000 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 175 43025 0000 43026 0000 43027 0000 7300 43030 0000 0 /WE ALLOW THE READER EVEN IF NOT CONFIGURED FOR ONE 7301 /THIS ALLOWS FIELD SERVICE TO USE THEIR PMK01 7302 IFZERO PUNCH 7303 43031 0000 IFNZRO PUNCH <0> 7304 43032 3050 DEVDMB 7305 IFZERO LPT 7306 43033 0000 IFNZRO LPT <0> 7307 43034 3050 IFZERO CDR 7308 IFNZRO CDR <0> 7309 43035 3050 IFZERO TC01 7317 IFNZRO TC01 7318 IFNZRO RK05 7319 43045 3050 IFNZRO .-JOBTBL+1 7320 43046 3050 IFNZRO .-JOBTBL+1 7321 43047 3050 IFNZRO .-JOBTBL+1 7322 43050 3050 IFNZRO .-JOBTBL+1 7323 43051 7777 -1 /TERMINATES ASSIGNABLE DEVICE TABLE 7324 7325 /JOBTBL, CLKTBL, TTYTBL, PRGTBL, & DSUTBL ARE SET UP BY INIT 7326 7327 7328 7720 *FIPBLK 7329 47720 0000 ZBLOCK 10 /FIP'S FIXED PARAMETER BLOCK 47721 0000 47722 0000 47723 0000 47724 0000 47725 0000 47726 0000 47727 0000 7330 7331 7730 *WINBAS 7332 47730 0000 ZBLOCK 50 /BASIC'S WINDOW 47731 0000 47732 0000 47733 0000 47734 0000 47735 0000 47736 0000 47737 0000 47740 0000 47741 0000 47742 0000 47743 0000 47744 0000 47745 0000 47746 0000 /EDUSYSTEM 50 MONITOR FOR MELROSE HIGH SCHOOL #495AB Page 176 47747 0000 47750 0000 47751 0000 47752 0000 47753 0000 47754 0000 47755 0000 47756 0000 47757 0000 47760 0000 47761 0000 47762 0000 47763 0000 47764 0000 47765 0000 47766 0000 47767 0000 47770 0000 47771 0000 47772 0000 47773 0000 47774 0000 47775 0000 47776 0000 47777 0000 7333 7334 No detected errors