File: of Disk: Disks/Build-2007/Copy-of-m8-rka0-rkb0
(Source file text)
/
011401 0005 UAC /GET THE CHAR
011402 7450 SNA
011403 5777 JMP I (EMREDY /IGNORE NULLS
011404 3021 DCA ZTEM1 /KEEP FOR FOLLWING TESTS
011405 4135 JMS GET
011406 0056 UCHAR /
011407 7510 SPA
011410 5225 JMP D6046X /THIS CHAR HAS NOT YET BEEN ECHOED.
011411 7041 CIA
011412 1021 TAD ZTEM1 /COMPARE THIS CHAR AND LAST INPUT CHAR
011413 0052 AND C177 /STRIP EXCESS BITS IN UAC
011414 7650 SNA CLA /IS THIS THE ECHO ?
011415 5256 JMP KHEXT2 /YES, IGNORE IT
011416 1420 TAD I X /SEE IF THE INPUT CHARACTER WAS A TAB
011417 1376 TAD (-211
011420 7640 SZA CLA /TAB ?
011421 5227 JMP D6046A /NO
011422 1021 TAD ZTEM1 /YES, MUST IGNORE SPACES ECHOED...
011423 1375 TAD (-240
011424 0052 AND C177 /CLEAR EXCESS BITS IN UAC
011425 7650 D6046X, SNA CLA /SPACE ?
011426 5777 JMP I (EMREDY /YES, DON'T ECHO ! DON'T CLEAR UCHAR !
011427 4135 D6046A, JMS GET /NO, PUT IN OUTPUT BUFFER
011430 0005 UAC
011431 4774 JMS I (FILLQ
011432 0030 UBUFOUT /ONE WORD TO OUTPUT BUFFER
011433 7650 SNA CLA /CHAR ACCEPTED ?
011434 5251 JMP KHEXT /YES
IFNDEF SINGL8 <
011435 4773 JMS I (EMINACT /NO, DEACTIVATE BG >
0002 O=BSIZE-1^POOLN%20^DGNTICK%36 /THIS IS FOR **2400 BAUD**
IFZERO O <O=1> /2400BAUD=240 CHARS/SEC=36^10 OCTAL
0074 OO=BSIZE-1^POOLN%2%TTYMAX
011436 4002 D6046C, JMS MONITOR /
011437 0064 STALL
011440 0001 DGNTICK%12 / O
011441 4123 JMS SETBASE /RESTORE BASE
IFNDEF SINGL8 <
011442 4135 JMS GET /GET COUNTER OF OUTPUT BUFFER
011443 0030 UBUFOUT
011444 1372 TAD (-OO /NEARLY EMPTY ?
011445 7700 SMA CLA
011446 5236 JMP D6046C /
011447 4771 JMS I (EMACTIV /ACTIVATE BG >
011450 5227 JMP D6046A /TRY AGAIN
/M3.PA 17-JUN-80 PAL8-V40A 26-JAN-86 PAGE 127
011451 4770 KHEXT, JMS I (EMRUN /RUN OUTPUT WRITER
011452 0033 UWRTR
011453 4144 JMS PUT /CLEAR UCHAR
011454 0056 UCHAR /
011455 5777 JMP I (EMREDY
011456 1420 KHEXT2, TAD I X /IF THE CHAR WAS CR
011457 1064 TAD M215
011460 7650 SNA CLA /WE KNOW THAT A LF WAS ECHOED TOO
011461 1054 TAD C212
011462 3420 DCA I X /PUT IN UCHAR
011463 5777 JMP I (EMREDY
/6031 TEST WHETHER THERE IS A NEW CHARACTER AVAILABLE
DO6031,
IFDEF SINGL8 <
IFDEF SYRX02 <
TAD (-DGNTICK^7 /SET COUNTER FOR 7 SECONDS >
IFNDEF SYRX02 <
TAD (-DGNTICK /SET COUNTER FOR 1 SECOND >
JMS PUT /IN UTEM2
UTEM2 / >
011464 4135 S8WAIT, JMS GET /
011465 0025 UBUFIN
011466 7640 SZA CLA /EMPTY ?
011467 5767 JMP I (EMSKIP /NO, LET BG SKIP
011470 7240 ACM1 /TEST IF JMP .-1 IS FOLLOWING
011471 4766 JMS I (TSTJMP /IF THE CASE, WE HANG UP USER
011472 5777 JMP I (EMREDY /NO, NOT OBVIOUSLY WAITING
IFDEF SINGL8 <
JMS MONITOR /WAIT 7 SECONDS FOR INPUT,
STALL /THEN DEACTIVATE THE BG
DGNTICK%12 /
JMS SETBASE /
JMS GET /
UTEM2 /GET COUNTER
CLA /ONLY NEED X FOR SKIP
ISZ I X /UPDATE COUNTER
JMP S8WAIT / >
011473 4773 JMS I (EMINACT /MAKE HIM INACTIVE NOW
011474 4002 JMS MONITOR /EXIT UNTIL RUNNED BY INPUT READER
011475 1040 EXIT
011476 4123 EMSTRT, JMS SETBASE
011477 4771 JMS I (EMACTIV /ACTIVATE BG
011500 5777 JMP I (EMREDY
/M3.PA 17-JUN-80 PAL8-V40A 26-JAN-86 PAGE 128
011501 4765 DO6036, JMS I (GETQ /FETCH CHAR FROM BUFFER
011502 0025 UBUFIN
011503 0364 AND (377
011504 4144 DO6032, JMS PUT /
011505 0005 UAC /STORE IN/CLEAR UAC
011506 4765 DO6030, JMS I (GETQ
011507 0025 UBUFIN
011510 4317 JMS ESCALT
011511 4144 JMS PUT
011512 0056 UCHAR /USED FOR SUPPRESSION OF BG-ECHO
011513 4763 JMS I (MTQ /BUMP INPUT BUFFER
011514 0025 UBUFIN
011515 5777 JMP I (EMREDY /EMPTY
011516 5777 JMP I (EMREDY /CLA;JMP EMREDY
011517 0000 ESCALT, 0 /ROUTINE TO CONVERT 233 IN $
011520 1362 TAD (-233 /
011521 7450 SNA /ESCAPE ?
011522 1361 TAD ("$-233 /MAKE IT A $
011523 1360 TAD (233
011524 5717 JMP I ESCALT
011525 4765 DO6034, JMS I (GETQ /LOOK INTO BUFFER
011526 0025 UBUFIN
011527 0364 AND (377
011530 7421 EMOR, MQL
011531 4135 JMS GET /
011532 0005 UAC
011533 7501 MQA /INCLUSIVE OR
011534 5757 JMP I (EMCLA /STORE IN AC
/M3.PA 17-JUN-80 PAL8-V40A 26-JAN-86 PAGE 129
011535 4756 EMSPY, JMS I (EMFETCH /GET PARAMETER = FIELD
011536 0047 AND C70
011537 1061 TAD C6201
011540 3343 DCA .+3
011541 4135 JMS GET
011542 0005 UAC
011543 7402 HLT //CDF TO FIELD USER WANTS TO SEE
011544 3021 DCA ZTEM1
011545 1421 TAD I ZTEM1
011546 6211 CDF 10
011547 3420 DCA I X /BACK TO UAC
011550 5767 JMP I (EMSKIP /SKIP PARAMETER
011556 2200
011557 1362
011560 0233
011561 0011
011562 7545
011563 2661
011564 0377
011565 2721
011566 1227
011567 1207
011570 1273
011571 1246
011572 7704
011573 1255
011574 2600
011575 7540
011576 7567
011577 1213
1600 PAGE
/M3.PA 17-JUN-80 PAL8-V40A 26-JAN-86 PAGE 130
/*******************************************************
/*********** I N P U T R E A D E R ***************
/*******************************************************
/KHI IS A TASK DEDICATED TO READ CHARACTERS FROM AN
/INPUT DEVICE AND PUT THEM INTO THE INPUT BUFFER.
/IT ALSO TAKES CARE OF THE ECHO, BY PUTTING CHARS
/INTO THE OUTPUT BUF AND STARTING THE OUTPUTWRITER .
/ALSO IT LOOKS FOR CONTROL-B CHARACTERS IN THE INPUT.
/^B WILL SET 'BGSTOP' AND THUS ESTABLISH ^B-MODE IN
/WHICH KHI WILL ACCUMULATE ONE INPUT BUFFER OF COMMAND.
/WHEN THE LINE IS CLOSED
/WITH A CARRIAGE RETURN, KHI WILL CALL "CB" TO EXECUTE
/THE COMMAND. IN CASE THE BGERR BIT GETS SET, IT WILL
/CALL THE ERROR PRINTER "BE" AND ENTER ^B-MODE.
/M3.PA 17-JUN-80 PAL8-V40A 26-JAN-86 PAGE 131
011600 4002 KHI0, JMS MONITOR /DETACHED BG, JUST STALL
011601 0064 STALL /AND TRY AGAIN LATER
011602 0012 DGNTICK /ONE SECOND IS AN EASY PACE
011603 4123 KHI11, JMS SETBASE /NECESSARY IN CASE OF TIMEOUT
011604 4135 JMS GET
011605 0025 UBUFIN
011606 7650 SNA CLA /ANY INPUT WAITING ?
011607 5214 JMP KHILP /NO
011610 4777 KHIRUN, JMS I (EMRUN /START THE EMULATOR
011611 0034 UCUR
011612 4777 KHI, JMS I (EMRUN
011613 0033 UWRTR
011614 1430 KHILP, TAD I BASE
011615 0042 AND C3 /(BGERR+SWPERR
011616 7640 SZA CLA /ERROR IN EMULATION OR SWP ?
011617 5776 JMP I (KHI8 /Y, GET INTO ^B-MODE
011620 4135 JMS GET
011621 0057 UKB
011622 7450 SNA /DETACHED BG ?
011623 5200 JMP KHI0 /YES, STALL, THEN TRY AGAIN
011624 3240 DCA KHINAM /
011625 4135 JMS GET /GET NUMBER OF CHARACTERS IN INPUT
011626 0025 UBUFIN /BUFFER. WE WILL USE THAT TO DETERMINE
011627 7110 CLL RAR /
011630 1071 TAD M4 /THE OPTIMUM TIMEOUT FOR THE NEXT
011631 7500 SMA /CHARACTER. THIS TIMEOUT IN FACT
011632 7200 CLA /DETERMINES THE ACTIVATION RATE FOR
011633 1043 TAD C4 /BACKGROUNDS.
011634 7041 CIA /DELAY=#CHARS*.1+.3 SECONDS
011635 1072 TAD M3 /
011636 4002 JMS MONITOR
011637 0024 CALL
011640 4044 KHINAM, K1TCBP
011641 5324 JMP KHI3 /INPUT HANDLER BUSY: STALL AND TRY
011642 7550 SPA SNA /IGNORE NULL'S
011643 5203 JMP KHI11 /TIMEOUT, ACTIVATE BG
011644 3021 DCA ZTEM1 /SAVE TEMP
011645 4123 JMS SETBASE /FOR WHICH BG? MAY HAVE CHANGED!
/M3.PA 17-JUN-80 PAL8-V40A 26-JAN-86 PAGE 132
011646 1021 TAD ZTEM1 /
011647 1375 TAD (-203 /TEST FOR ^C
011650 7440 SZA /
011651 7001 IAC /TEST FOR ^B
011652 7440 SZA
011653 1374 TAD (202-217 /TEST FOR ^O
011654 7450 SNA
011655 5773 JMP I (KHI4 /CLEAR IN AND OUT BUFFERS, RETEST ^B
011656 1071 TAD M4 /TEST FOR ^S
011657 7450 SNA
011660 5334 JMP KHISTP /STOP OUTPUT WRITER
011661 1041 TAD C2 /TEST FOR ^Q
011662 7650 SNA CLA
011663 5772 JMP I (KHICON /RESTART OUTPUT WRITER
011664 4771 KHINRM, JMS I (KHTEST /CONTROL GROUP OR PRINTING GROUP ?
011665 7000 NOP /DON'T ECHO CONTROL CHAR
011666 7330 AC4000 /NON-ECHO MODE
011667 1021 TAD ZTEM1 /ENTER CHAR INTO INPUT BUF
011670 4770 JMS I (FILLQ /ONE WORD TO INPUT BUFFER
011671 0025 UBUFIN
011672 7650 SNA CLA
011673 5277 JMP KHECHO /OK
011674 4767 JMS I (KHIOUT /GIVE WARNING (BELL)
011675 0207 207
011676 5212 JMP KHI /BUFFER FULL, KEEP LISTENING
011677 4771 KHECHO, JMS I (KHTEST /ECHO OR NOT - THAT'S THE QUESTION.
011700 5210 JMP KHIRUN /CONTROL CHAR - DON'T ECHO, ACTIVATE BG
011701 5210 JMP KHIRUN /NON-ECHO MODE
011702 1021 TAD ZTEM1
011703 4766 JMS I (ESCALT /CONVERT 233 TO $
011704 4767 JMS I (KHIOUT
011705 1021 TAD ZTEM1
011706 1064 TAD M215
011707 7440 SZA /CR IS VERY DELICATE
011710 5320 JMP KHI12 /NOT CR, JUST WAIT FOR MORE
011711 1054 TAD C212 /ADD A LF TO THE CR
011712 4767 JMS I (KHIOUT
011713 1430 TAD I BASE
011714 0365 AND (BGSTOP
011715 7640 SZA CLA /ARE WE IN ^B MODE ?
011716 5764 JMP I (KHI5 /YES, GO THERE
011717 5210 JMP KHIRUN /AND ACTIVATE THE BG
/M3.PA 17-JUN-80 PAL8-V40A 26-JAN-86 PAGE 133
IFNDEF SINGL8 <
011720 1363 KHI12, TAD (215-233
011721 7650 SNA CLA /ESCAPE IS ANOTHER PET CHARACTER
011722 5210 JMP KHIRUN /RUSH THE BACKGROUND ACTIVE
011723 5212 JMP KHI /NO, DON'T PANIC >
IFDEF SINGL8 <
KHI12, CLA /ALWAYS START THE
JMP KHIRUN /BACKGROUND IMMEDIATELY >
011724 4002 KHI3, JMS MONITOR
011725 0064 STALL
011726 0002 DGNTICK%5
011727 4123 JMS SETBASE
011730 4135 JMS GET
011731 0060 UTTY
011732 3240 DCA KHINAM
011733 5236 JMP KHINAM-2
011734 4135 KHISTP, JMS GET /STOP OUTPUT WRITER
011735 0033 UWRTR
011736 3341 DCA .+3
011737 4002 JMS MONITOR
011740 0034 STOP
011741 0000 0
011742 7402 HLT /NAME ? NOT ? FOUND ?
011743 4123 JMS SETBASE
011744 5214 JMP KHILP
011745 6203 EMTIME, CIF CDF 0 //YOU NEVER KNOW
011746 1762 TAD I (TIME+3 //FETCH # HOURS - 24
011747 0050 AND C77 //THE PROBABILITY IS: 2.5 E-9
011750 7002 BSW //
011751 1761 TAD I (TIME+2 //FETCH # MINUTES-60
011752 6213 CIF CDF 10 /
011753 1360 TAD (3074 /DECIMAL: 2460
011754 5757 JMP I (EMCLA /STORE IN USERS AC: HHH.HHH.MMM.MMM
011757 1362
011760 3074
011761 0274
011762 0275
011763 7762
011764 2027
011765 1000
011766 1517
011767 2134
011770 2600
011771 2000
011772 2065
011773 2056
011774 7763
011775 7575
011776 2143
011777 1273
2000 PAGE
/M3.PA 17-JUN-80 PAL8-V40A 26-JAN-86 PAGE 134
/THIS ROUTINE DETERMINES WHETHER A CHAR IS IN THE CONTROL-GROUP
/OR IN THE PRINTING GROUP: 211,215,233 AND 240 - 376.
/IN FACT IT HAS THREE RETURNS:
/1 - CHAR IS IN CONTROL-GROUP
/2 - CHAR IS IN PRINTING GROUP, BUT ECHO IS DISABLED
/3 - CHAR IS IN PRINTING GROUP AND ECHO IS ENABLED
012000 0000 KHTEST, 0 /SKIP IF 'PRINTING' CHAR.
012001 1021 TAD ZTEM1
012002 1377 TAD (-240
012003 7510 SPA
012004 5211 JMP KHT1
012005 1376 TAD (240-377
012006 7710 SPA CLA
012007 5220 JMP KHT2 /PRINTING GROUP; IS ECHO ENABLED ?
012010 5600 JMP I KHTEST /CONTROL-GROUP, TAKE FIRST RETURN
012011 1375 KHT1, TAD (240-211
012012 7440 SZA
012013 1071 TAD M4 /(211-215
012014 7440 SZA /CARRIAGE RETURN ?
012015 1374 TAD (215-233
012016 7640 SZA CLA /ESCAPE ?
012017 5600 JMP I KHTEST /CONTROL GROUP, TAKE FIRST RETURN
012020 2200 KHT2, ISZ KHTEST /PRINTING CHARACTER
012021 4135 JMS GET
012022 0045 UECHO /ECHO OR NOT ?
012023 7700 SMA CLA
012024 2200 ISZ KHTEST /ECHO, TAKE THIRD RETURN
012025 5600 JMP I KHTEST
012026 4123 KHIST, JMS SETBASE /START IN CONTROL/B MODE, R<CR> IN BUFFER
012027 1030 KHI5, TAD BASE
012030 4002 JMS MONITOR /CALL THE CTRLB TASK
012031 0024 CALL
012032 0602 "C^100+"B&3777
012033 5230 JMP .-3 /BUSY ?
012034 3021 DCA ZTEM1
012035 4123 JMS SETBASE
012036 1021 TAD ZTEM1 /LOOK WHAT W'VE GOT
012037 7450 SNA
012040 5245 JMP KHI51 /GO BACK TO NORMAL PROCESSING
012041 7710 SPA CLA /
012042 4334 JMS KHIOUT /ERROR
012043 0277 "?
012044 5312 JMP KHI21 /TRY AGAIN
012045 1430 KHI51, TAD I BASE
012046 0373 AND (-BGSTOP-LONG-1
012047 3430 DCA I BASE /CLEAR BGSTOP
012050 4772 JMS I (EMBSINT /TEL BS WE'RE IN THE GAME AGAIN
012051 4135 JMS GET /UNSTACK ECHO-SUPPRESS BIT
012052 0045 UECHO
012053 7104 CLL RAL
012054 3420 DCA I X
012055 5771 JMP I (KHIRUN /GO !
/M3.PA 17-JUN-80 PAL8-V40A 26-JAN-86 PAGE 135
012056 4770 KHI4, JMS I (CLRQ /CLEAR INPUT AND OUTPUT BUFFERS
012057 0025 UBUFIN
012060 4770 JMS I (CLRQ
012061 0030 UBUFOUT
012062 1430 TAD I BASE
012063 0367 AND (-LONG-1 /CLEAR LONG FOR GOOD RESPONSE
012064 3430 DCA I BASE
012065 4135 KHICON, JMS GET /RESTART OUTPUT WRITER
012066 0033 UWRTR
012067 3273 DCA .+4
012070 1021 TAD ZTEM1 /SAVE CHAR
012071 4002 JMS MONITOR
012072 0030 RESTRT
012073 0000 0
012074 7402 HLT /NAME ? NOT ? FOUND ?
012075 3021 DCA ZTEM1 /RESTORE CHAR
012076 4123 JMS SETBASE
012077 1021 TAD ZTEM1 /
012100 1366 TAD (-221 /
012101 7450 SNA /WAS IT ^Q ?
012102 5765 JMP I (KHILP /YES, IGNORE
012103 1045 TAD C17 / (221-202
012104 7640 SZA CLA /WAS IT ^B ?
012105 5764 JMP I (KHINRM /NO, EITHER ^C,^O : PUT IN BUFFER
012106 4334 JMS KHIOUT /YES, PRINT ^B
012107 0336 "^
012110 4334 JMS KHIOUT
012111 0302 "B
012112 4135 KHI21, JMS GET /STACK HIS ECHO-SUPPRESS BIT
012113 0045 UECHO
012114 7510 SPA
012115 7110 CLL RAR
012116 3420 DCA I X
012117 1055 TAD C215 /PRINT CRLF B]
012120 4334 JMS KHIOUT
012121 1054 TAD C212
012122 4334 JMS KHIOUT
012123 4334 JMS KHIOUT
012124 0302 "B
012125 4334 JMS KHIOUT
012126 0276 276 /THE GREATER-THAN SYMBOL
012127 1430 TAD I BASE
012130 0363 AND (-BGSTOP-BGERR-SWPERR-LONG-1
012131 1362 TAD (BGSTOP /SET BGSTOP: WE ARE IN ^B-MODE
012132 3430 DCA I BASE
012133 5761 JMP I (KHI /START OUTPUT WRITER AND LOOK FOR COMMAND
/M3.PA 17-JUN-80 PAL8-V40A 26-JAN-86 PAGE 136
012134 0000 KHIOUT, 0 /ROUTINE TO PUT ONE CHAR IN OUTPUT BUFFER
012135 7450 SNA /CHAR IN AC ?
012136 1734 TAD I KHIOUT /NO, GET PARAMETER
012137 4760 JMS I (FILLQ
012140 0030 UBUFOUT
012141 7300 CLA CLL /FULL ! .....
012142 5734 JMP I KHIOUT
012143 4770 KHI8, JMS I (CLRQ /HERE IF ERROR OCCURRED
012144 0025 UBUFIN
012145 1030 TAD BASE
012146 4002 JMS MONITOR
012147 0024 CALL
012150 0505 "B^100+"E&3777
012151 5346 JMP .-3
012152 4123 JMS SETBASE
012153 5312 JMP KHI21
012160 2600
012161 1612
012162 1000
012163 6574
012164 1664
012165 1614
012166 7557
012167 7577
012170 2731
012171 1610
012172 1263
012173 6577
012174 7762
012175 0027
012176 7641
012177 7540
2200 PAGE
/M3.PA 17-JUN-80 PAL8-V40A 26-JAN-86 PAGE 137
012200 0000 EMFETCH,0 /FETCH (PC+(AC)) FROM USER INSTR. FIELD
012201 3025 DCA ZTEM5 /SAVE AC
012202 4135 JMS GET /
012203 0003 UPC
012204 1025 TAD ZTEM5
012205 3025 DCA ZTEM5 /PC+AC
012206 2020 ISZ X /ADVANCE TO UFLDS
012207 1420 TAD I X /GET USERS FIELD BITS
012210 4777 JMS I (EMGETF /GET REAL FIELD (WON'T SWAP)
012211 4101 CDTOAC //THIS MEANS THAT INST.FLD IS IN 'XACCDF'
012212 1425 TAD I ZTEM5 //FETCH A WORD
012213 6211 CDF 10 /
012214 5600 JMP I EMFETCH /RETURN TO USER WITH WORD IN AC
012215 7307 EMHAND, AC0004 /TEST FOR JMP .+4 FOLLOWING 6000
012216 4776 JMS I (TSTJMP /
012217 5775 JMP I (EMERROR /IT WAS A RANDOM 6000
012220 1030 TAD BASE
012221 1374 TAD (UDTV-1 /POINTER TO UDTV
012222 3010 DCA AUTO10
012223 7301 AC0001
012224 4200 JMS EMFETCH /GET FUNCTION WORD
012225 3020 DCA X
012226 1020 TAD X
012227 0047 AND C70
012230 1373 TAD (-BGCORE^10
012231 7700 SMA CLA /LEGAL FIELD ?
012232 5775 JMP I (EMERROR /HE TRIES TO USE NON-EXISTENT MEMORY
012233 1020 TAD X
012234 3410 DCA I AUTO10 /STORE IN UDTV
012235 7326 AC0002
012236 4200 JMS EMFETCH /GET BUFFER ADDRESS
012237 3410 DCA I AUTO10 /STORE IN UDTV+1
012240 7325 AC0003
012241 4200 JMS EMFETCH /GET BLOCK NUMBER
012242 3410 DCA I AUTO10 /STORE IN UDTV+2
012243 5772 JMP I (EMHD /DISPATCH VIA HNDTAB
/M3.PA 17-JUN-80 PAL8-V40A 26-JAN-86 PAGE 138
012244 4135 EMCHNL, JMS GET /
012245 0005 UAC /GET CHANNEL NUMBER
012246 7640 SZA CLA /SYS: ?
012247 5274 JMP NOTSYS /NO
012250 1374 TAD (UDTV-1 /SEE IF HE'S LOADING KBM OR CD.
012251 1030 TAD BASE
012252 3010 DCA AUTO10
012253 1410 TAD I AUTO10
012254 0047 AND C70
012255 1410 TAD I AUTO10
012256 7650 SNA CLA /FIELD 0, ADDRESS 0 ?
012257 1410 TAD I AUTO10
012260 1070 TAD M7
012261 7440 SZA /READING KBM ?
012262 1371 TAD (-51+7
012263 7640 SZA CLA /OR READING CD ?
012264 5274 JMP NOTSYS /NO, NO RELEASE
012265 4777 JMS I (EMGETF /GET FIELD 0 INCORE
012266 4101 CDTOAC //
012267 7332 AC2000 //
012270 0474 AND I C7777 //IS BATCH ACTIVE IN THE BG ?
012271 6211 CDF 10
012272 7650 SNA CLA /
012273 4770 JMS I (EMREL /NO, RELEASE HIS DEVICES
012274 4135 NOTSYS, JMS GET
012275 0005 UAC
012276 0042 AND C3 /GET CHANNEL NUMBER
012277 7104 CLL RAL / *2
012300 4135 JMS GET /FETCH TYPE WORD
012301 0036 UCHNL0+1
012302 0044 AND C7 /EXTRACT UNIT NUMBER
012303 7421 MQL
012304 1420 TAD I X
012305 7006 RTL /WRITE ENABLE TO LINK
012306 7620 SNL CLA /WRITE ENABLE ?
012307 5314 JMP NOCHCK /YES, NO NEED TO CHECK FOR WRITE
012310 4135 JMS GET
012311 0012 UDTV /GET FUNCTION WORD: READ ONLY !
012312 7710 SPA CLA
012313 5361 JMP EMDSK1 /THEY ARE TRYING TO FOOL US
012314 4135 NOCHCK, JMS GET /GET FUNCTION WORD AGAIN
012315 0012 UDTV
012316 0067 AND C7770
012317 7501 MQA /ADD UNIT NUMBER
012320 3420 DCA I X
012321 1420 TAD I X
012322 4777 JMS I (EMGETF /LOAD TARGET FIELD AND !LOCK! IT
012323 7421 MQL /THATS THE REAL FIELD NUMBER
012324 4135 JMS GET /AND ONCE AGAIN THE FUNCTION WORD
012325 0012 CUDTV, UDTV
012326 0367 AND (7707 /ZERO FIELD BITS
012327 7501 MQA /OR-IN FIELD BITS
012330 3420 DCA I X /AND RESTORE
/M3.PA 17-JUN-80 PAL8-V40A 26-JAN-86 PAGE 139
012331 4123 EMDSK0, JMS SETBASE /(IN CASE THIS IS A RETRY)
012332 4135 JMS GET
012333 0005 UAC
012334 0042 AND C3
012335 7104 CLL RAL / *2
012336 4135 JMS GET /GET TASK NAME
012337 0035 UCHNL0
012340 7450 SNA /CHANNEL OPEN ?
012341 5361 JMP EMDSK1 /NO, ERROR !
012342 3347 DCA CHNDRV /NAME OF DRIVER TASK
012343 1030 TAD BASE
012344 1325 TAD CUDTV
012345 4002 JMS MONITOR
012346 0024 CALL
012347 0000 CHNDRV, 0 /GETS TASK NAME
012350 5331 JMP EMDSK0 /TASK BUSY, RETRY
012351 3354 DCA .+3
012352 4002 JMS MONITOR
012353 0044 WAIT
012354 0000 0
012355 7421 MQL /POSSIBLE ERROR CODE
012356 4123 JMS SETBASE
012357 7701 CLA MQA
012360 7640 SZA CLA
012361 7330 EMDSK1, AC4000
012362 5766 JMP I (EMCLA /STORE IN UAC AND QUIT
012366 1362
012367 7707
012370 1074
012371 7736
012372 0552
012373 7700
012374 0011
012375 0723
012376 1227
012377 0650
2400 PAGE
/M3.PA 17-JUN-80 PAL8-V40A 26-JAN-86 PAGE 140
/************************************************************
/************* O U T P U T W R I T E R ****************
/************************************************************
/KHO IS A TASK, DEDICATED TO TRANSPORT CHARACTERS FROM
/THE TERMINAL OUTPUT BUFFER TO THE TERMINAL.
/WHEN THE BUFFER IS EMPTY, IT STOPS AND MUST BE 'RUN'
012400 4002 KHO2, JMS MONITOR
012401 0064 STALL
012402 0005 DGNTICK%2
012403 4123 KHO, JMS SETBASE
012404 7200 KHO1, CLA /!
012405 4135 JMS GET
012406 0060 UTTY
012407 7450 SNA /DETACHED BG ?
012410 5200 JMP KHO2 /YES, WAIT TILL ATTACHED
012411 3223 DCA KHCALL /DRIVER NAME
012412 4135 JMS GET
012413 0030 UBUFOUT
012414 7650 SNA CLA /MORE CHAR IN THE BUFFER ?
012415 5232 JMP KHEXIT /NO, QUIT
012416 4777 JMS I (GETQ /GET NEXT CHAR
012417 0030 UBUFOUT /FROM OUTPUT BUFFER
012420 0376 AND (377 /ONLY 8 BITS
012421 4002 JMS MONITOR /AND PUT IT OUT
012422 0024 CALL
012423 4034 KHCALL, T1TCBP /NAME OF OUTPUT TASK
012424 5200 JMP KHO2 /OUTPUT TASK BUSY:LOOP
012425 4123 JMS SETBASE
012426 4775 KHLT, JMS I (MTQ /NOW REMOVE THE CHAR FROM THE BUFFER
012427 0030 UBUFOUT
012430 7610 SKP CLA /EMPTY, EXIT
012431 5204 JMP KHO1
012432 4002 KHEXIT, JMS MONITOR /HALT THE OUTPUT WRITER
012433 1040 EXIT
/M3.PA 17-JUN-80 PAL8-V40A 26-JAN-86 PAGE 141
/CHANNEL ASSIGNMENT ROUTINE
/THIS ROUTINE IS CALLED VIA A GIANT IOT(5)
/PARAMETERS FROM THE BACKGROUND:
/
/ CHANNEL NUMBER 0-3
/ TASK NAME
/ DEVICE TYPE AND UNIT NUMBER
012434 7301 EMOPEN, AC0001
012435 4774 JMS I (EMFETCH /GET CHANNEL NUMBER
012436 3021 DCA ZTEM1 /
012437 7326 AC0002
012440 4774 JMS I (EMFETCH /GET DRIVER TASK NAME
012441 3022 DCA ZTEM2 /
012442 7325 AC0003
012443 4774 JMS I (EMFETCH /GET TYPE AND UNIT NUMBER
012444 3023 DCA ZTEM3 /
012445 1021 TAD ZTEM1
012446 0373 AND (7774
012447 7640 SZA CLA /MUST BE 0-3
012450 5772 JMP I (EMERROR
012451 1021 TAD ZTEM1
012452 7104 CLL RAL
012453 1030 TAD BASE
012454 1371 TAD (UCHNL0-1 /INDEX CHANNEL TABLE
012455 3010 DCA AUTO10
012456 1022 TAD ZTEM2
012457 3410 DCA I AUTO10 /ENTER TASK NAME IN WORD 0
012460 1023 TAD ZTEM3
012461 3410 DCA I AUTO10 /ENTER TYPE IN WORD 1
012462 5770 JMP I (EMCLA /CLEAR USER AC AND RETURN
/M3.PA 17-JUN-80 PAL8-V40A 26-JAN-86 PAGE 142
IFDEF DKUSED <
/THIS TASK PERFORMS THE CONVERSION BETWEEN A VIRTUAL DISK
/REQUEST AND A TRUE PHYSICAL DISK REQUEST. IT MAY BE CALLED
/AS AN ORDINARY BLOCKTRANSFER MODULE (WITHOUT QUEING)
/AND WILL TRANSFORM THE CALLERS REQUEST ACCORDING TO THE
/DEFINITIONS FOUND IN 'DSKTAB', WHICH SHOULD BE IN FIELD 1 AND
/MUST BE SETUP BY THE POWERUP SEQUENCE. DSKTAB SHOULD CONTAIN
/EIGHT ENTRIES OF FOUR WORDS EACH DESCRIBING A VIRTUAL DISK
/LAYOUT OF EACH ENTRY:
/
/WORD 0: NAME OF HANDLER TASK
/WORD 1: BITS 9-11=PHYSICAL UNIT NUMBER
/WORD 2: RELATIVE BLOCK # 0
/WORD 3: LAST BLOCK+1 (PHYSICAL)
/
/IF THE TRANSFER GOES ACROSS THE BOUNDS OF THE VIRTUAL DISK,
/THE TRANSFER IS NOT DONE AND A HARDERR STATUS IS RETURNED.
012463 7450 DK, SNA /CLOSE ?
012464 5357 JMP DKCLOSE
012465 3021 DCA ZTEM1 /POINTER TO USERS DTV
012466 1434 TAD I ZMYCDF /CDF TO USERS DTV, USED TO INITIALIZE
012467 3306 DCA DKCDF /CDF-USER ROUTINE
012470 1421 TAD I ZTEM1 /FETCH FUNCTION WORD
012471 0044 AND C7 /EXTRACT UNIT NUMBER
012472 3025 DCA ZTEM5
012473 1025 TAD ZTEM5
012474 7106 CLL RTL /MULTIPLY BY 4
012475 1367 TAD (DSKTAB-1 /INDEX IN DISK DESCRIPTOR TABLE
012476 6211 CDF 10 /DSKTAB IS IN FIELD 10
012477 3010 DCA AUTO10 /
012500 1410 TAD I AUTO10 /FIRST WORD CONTAINS TASK NAME
012501 7450 SNA /IS THIS UNIT DEFINED ?
012502 5356 JMP DKERROR /NO, ZERO NAME IS ILLEGAL
012503 3345 DCA DKNAME /NAME OF HANDLER TASK
012504 1410 TAD I AUTO10 /GET WORD 1
012505 3362 DCA DKDTV /BUILD A NEW DTV, THIS IS THE TRUE UNIT #
/M3.PA 17-JUN-80 PAL8-V40A 26-JAN-86 PAGE 143
012506 7402 DKCDF, HLT /CDF TO CALLERS FIELD
012507 1421 TAD I ZTEM1 /GET REST OF USERS FUNCTION WORD
012510 0067 AND C7770 /MASK OF UNIT #
012511 1362 TAD DKDTV /GET TRUE UNIT #
012512 3362 DCA DKDTV /THIS IS THE FINAL FUNCTION WORD
012513 2021 ISZ ZTEM1 /BUMP POINTER TO USERS DTV
012514 1421 TAD I ZTEM1 /GET USERS BUFFER ADDRESS
012515 3363 DCA DKDTV+1
012516 2021 ISZ ZTEM1
012517 1421 TAD I ZTEM1 /GET VIRTUAL BLOCK #
012520 6211 CDF 10
012521 1410 TAD I AUTO10 /ADD OFFSET TO OBTAIN PHYSICAL BLOCK #
012522 3364 DCA DKDTV+2 /AND STORE IT IN DKDTV
012523 1362 TAD DKDTV /NOW CHECK IF WHOLE TRANSFER
012524 0060 AND C3700 /IS WITHIN THE RANGE. GET LENGTH
012525 7450 SNA
012526 7330 AC4000
012527 7002 BSW
012530 7011 IAC RAR /MAKE # BLOCKS
012531 7100 CLL
012532 1364 TAD DKDTV+2 /ADD START BLOCK #
012533 7041 CIA
012534 1410 TAD I AUTO10 /ADD MAXIMUM ALLOWED
012535 7620 SNL CLA /OVERFLOW ?
012536 5356 JMP DKERROR /YES, TRANSFER OUT OF RANGE
012537 4002 JMS MONITOR /NOW RESERVE A SLOT FOR THE USER TO WAIT
/LET CALLER CONTINUE WITH SLOT # IN AC
012540 0061 RESERV RETURN CONTINUE
012541 3355 DCA DKSLT2
/ CDTOIF
012542 1366 TAD (DKDTV /GET POINTER TO DKDTV
012543 4002 JMS MONITOR
012544 0024 CALL /CALL SYSTEM HANDLER
012545 2631 DKNAME, "S^100+"Y&3777
012546 5343 JMP .-3 /BUSY ?
012547 3352 DCA DKSLT1
012550 4002 JMS MONITOR
012551 0044 WAIT
012552 0000 DKSLT1, 0
012553 4002 JMS MONITOR /PASS STATUS TO USER
012554 1014 SIGNAL HALT CLEAR
012555 0000 DKSLT2, 0
/M3.PA 17-JUN-80 PAL8-V40A 26-JAN-86 PAGE 144
012556 1373 DKERROR,TAD (-HRDERR
012557 1074 DKCLOSE,TAD M1 /
012560 4002 JMS MONITOR
012561 1040 EXIT
012562 0000 DKDTV, ZBLOCK 3 /HERE THE TRANSFER VECTOR IS BUILD
/END IFDEF DKUSED >
012566 2562
012567 7577
012570 1362
012571 0034
012572 0723
012573 7774
012574 2200
012575 2661
012576 0377
012577 2721
2600 PAGE
/M3.PA 17-JUN-80 PAL8-V40A 26-JAN-86 PAGE 145
/THIS IS THE QUEUE HANDLING PACKAGE FOR THE MULTI8
/TERMINAL IO QUEUES. IT IS BASED ON THE USAGE OF A POOL OF
/BLOCKS OF 2^N WORDS EACH. THESE BLOCKS ARE USED TO STORE
/2^N-1 CHARACTERS AND A POINTER TO THE NEXT BLOCK IN THE QUEUE.
/EACH QUEUE IS BASED ON A THREE-WORD DESCRIPTOR:
/
/COUNTER: CONTAINS THE NUMBER OF CHARACTERS IN THE QUEUE
/READP: POINTER TO THE START OF THE FIRST BLOCK IN QUEUE
/WRITEP: POINTER TO THE LAST BLOCK IN THE QUEUE
/
/WHEN THE QUEUE IS FILLED, ADDITIONAL BLOCKS MAY BE LINKED TO
/IT. THESE BLOCKS ARE OBTAINED FROM A QUEUE AT LOCATION 'FREE'.
/ON READING CHARACTERS FROM THE QUEUE, EMPTY BLOCKS ARE RETURNED TO
/THE FREE LIST, EXCEPT FOR THE LAST BLOCK, WHICH IS NEVER RELEASED.
/THE PACKAGE CONTAINS 4 ROUTINES:
/
/FILLQ: ENTERS ONE CHARACTER IN THE QUEUE
/MTQ: REMOVES ONE CHAR FROM THE QUEUE
/GETQ: GETS THE NEXT CHARACTER FROM THE QUEUE, WITHOUT
/ REMOVING IT
/CLRQ: ZERO'S A QUEUE
/
/ ***** NOTE *****
/ ONLY FILLQ AND MTQ ARE CROSS-FIELD CALLABLE
/
2661 XCOUNT=MTQ
2721 XREADP=GETQ
2731 XWRITEP=CLRQ
IFZERO BGMAX-1 <
BSIZE=40
FMASK=C37
POOLN=2 >
IFZERO BGMAX-2 <
BSIZE=40
FMASK=C37
POOLN=4 >
IFZERO BGMAX-3 <
0020 BSIZE=20 /BLOCK SIZE, MUST BE 2^N
0045 FMASK=C17 /ADDRESS FOR MASK
0010 POOLN=10 /NUMBER OF BLOCKS IN THE POOL >
IFZERO BGMAX-4 <
BSIZE=20
FMASK=C17
POOLN=20 >
IFZERO BGMAX-5 <
BSIZE=10
FMASK=C7
POOLN=40 >
IFNZRO 5-BGMAX&4000 <
BSIZE=10
FMASK=C7
POOLN=100 >
/M3.PA 17-JUN-80 PAL8-V40A 26-JAN-86 PAGE 146
012600 0000 FILLQ, 0 /ENTER WITH CHAR IN AC
012601 7421 MQL /STORE FOR A WHILE
012602 1200 TAD FILLQ /CALL COMMON SETUP CODE
012603 4361 JMS SETUP /
012604 7001 IAC /
012605 3331 DCA XWRITEP /
012606 1731 TAD I XWRITEP /SETUP POINTER TO STORE
012607 3020 DCA X /THE CHARACTER
012610 7701 CLA MQA /STORE CHAR IN THE BUFFER
012611 3420 DCA I X /
012612 7301 AC0001 /
012613 1020 TAD X /GET POINTER TO NEXT LOCATION
012614 0045 AND FMASK /
012615 7640 SZA CLA /PAST END OF BLOCK ?
012616 5250 JMP FILLQ1 /NO, NO PROBLEMS THIS TIME
012617 1121 TAD FRECNT /GET NUMBER OF FREE BLOCKS
IFZERO BSIZE-10 < CLL RTL;RAL >
012620 7106 IFZERO BSIZE-20 < CLL RTL;RTL >
012621 7006
IFZERO BSIZE-40 < CLL RTL;RTL;RAL >
012622 7041 CIA /
012623 1121 TAD FRECNT /1 PLACE IN BLOCKLET IS POINTER
012624 1661 TAD I XCOUNT /SEE IF WE HIT THE MAXIMUM ALLOWED
012625 7700 SMA CLA /TOO MUCH ?
012626 5256 JMP FERROR /YES, ERROR RETURN
012627 1020 TAD X /YES, BACKUP TO BEGIN OF BLOCK
012630 0377 AND (-BSIZE /
012631 3020 DCA X /
012632 1120 TAD FREE /POINTER TO FIRST BLOCK ON FREE CHAIN
012633 7450 SNA /FREE QUEUE EMPTY ?
012634 5256 JMP FERROR /YES, SORRY
012635 3420 DCA I X /NO, PUT ADDRESS OF FREE BLOCK IN LAST
012636 1120 TAD FREE /BLOCK AND PREPARE X FOR WRITEP
012637 3020 DCA X /
012640 1520 TAD I FREE /
012641 3361 DCA SETUP /POINTER TO NEXT FREE BLOCK
012642 3520 DCA I FREE /ZERO LINK OF NEW BLOCK
012643 1361 TAD SETUP /GET POINTER TO NEXT FREE BLOCK
012644 3120 DCA FREE /AND SET FREE ACCORDINGLY
012645 7240 ACM1
012646 1121 TAD FRECNT /REDUCE COUNTER FOR FREE QUEUE
012647 3121 DCA FRECNT /
012650 7301 FILLQ1, AC0001 /
012651 1020 TAD X /NOW USE X TO
012652 3731 DCA I XWRITEP /SET NEW WRITE POINTER
012653 2661 ISZ I XCOUNT /INCREMENT CHARACTER COUNT
012654 7421 MQL /RETURN WITH AC=0
012655 2200 FNORML, ISZ FILLQ /TAKE OK RETURN
012656 7701 FERROR, CLA MQA /FOR ERROR, RETURN WITH CHAR IN AC
012657 6203 FRETRN, CDF CIF
012660 5600 JMP I FILLQ /THATS IT
/M3.PA 17-JUN-80 PAL8-V40A 26-JAN-86 PAGE 147
012661 0000 MTQ, 0 /READ ONE CHAR FROM THE QUEUE
012662 1261 TAD MTQ /CALL COMMON SETUP CODE
012663 4361 JMS SETUP /
012664 3321 DCA XREADP /
012665 1721 TAD I XREADP /FETCH THE CURRENT CHARACTER
012666 3020 DCA X /
012667 1420 TAD I X /THERE IT IS
012670 7421 MQL /STORE AWAY FOR LATER
012671 3420 DCA I X /CLEAR BUFFER
012672 1661 TAD I XCOUNT /CAN WE ADVANCE THE POINTER ?
012673 7650 SNA CLA / ?
012674 5257 JMP FRETRN /NO, GO BACK WITH NULL
012675 2721 ISZ I XREADP /ADVANCE READ POINTER
012676 1721 TAD I XREADP /SEE IF W'RE PAST THE END OF THE BLOCK
012677 0045 AND FMASK
012700 7640 SZA CLA /PAST END OF BLOCK ?
012701 5315 JMP MTQ1 /NO
012702 1721 TAD I XREADP /YES, BACKUP POINTER TO BEGIN OF BLOCK
012703 1377 TAD (-BSIZE /
012704 3020 DCA X /
012705 1420 TAD I X /GET ADDRESS OF NEXT BLOCK
012706 7001 IAC /ADVANCE POINTER TO FIRST CHAR POSITION
012707 3721 DCA I XREADP /ADDRESS OF NEW BLOCK
012710 1120 TAD FREE /
012711 3420 DCA I X /
012712 1020 TAD X
012713 3120 DCA FREE /
012714 2121 ISZ FRECNT /INCREMENT NUMBER OF FREE BLOCKS
012715 7240 MTQ1, ACM1 /BACKUP CHARACTER COUNT
012716 1661 TAD I XCOUNT
012717 3661 DCA I XCOUNT /
012720 5255 JMP FNORML /AND RETURN WITH CHAR IN AC
012721 0000 GETQ, 0 /FETCH THE CURRENT CHARACTER
012722 7301 AC0001 /READP=UBUFXXX+1
012723 1721 TAD I GETQ /GET PARAMETER
012724 2321 ISZ GETQ /FOR NORMAL RETURN
012725 1030 TAD BASE /
012726 4114 JMS DEFER /GET POINTER TO CHARACTER
012727 4114 JMS DEFER /GET THE CHARACTER
012730 5721 JMP I GETQ /RETURN WITH CHAR IN AC
/M3.PA 17-JUN-80 PAL8-V40A 26-JAN-86 PAGE 148
012731 0000 CLRQ, 0 /ZERO A QUEUE
012732 1331 TAD CLRQ
012733 4361 JMS SETUP /CALL COMMON SETUP CODE
012734 3321 DCA XREADP /
012735 1721 CLRQ1, TAD I XREADP /MAKE POINTER TO FIRST BLOCK IN QUEUE
012736 0377 AND (-BSIZE
012737 4114 JMS DEFER /GET POINTER TO NEXT BLOCK
012740 7450 SNA /NIL, THEN THIS IS A ONE-BLOCK QUEUE
012741 5351 JMP CLRQ2 /YES, DON'T DEALLOCATE THE LAST BLOCK
012742 3721 DCA I XREADP /STORE POINTER TO NEXT BLOCK
012743 1120 TAD FREE /
012744 3420 DCA I X /LINK OLD BLOCK TO FREE
012745 1020 TAD X /
012746 3120 DCA FREE /AND SET SET FREE TO THIS ONE
012747 2121 ISZ FRECNT /RETURN 1 BLOCK TO FREE QUEUE
012750 5335 JMP CLRQ1 /GO ON FOR MORE BLOCKS
012751 2020 CLRQ2, ISZ X /SET READP TO FIRST CHARACTER POSITION
012752 1020 TAD X /POINTER TO FIRST BLOCK
012753 3721 DCA I XREADP /NEW READP
012754 2321 ISZ XREADP /ADVANCE TO WRITEP
012755 1020 TAD X /
012756 3721 DCA I XREADP /SET WRITEP=READP
012757 3661 DCA I XCOUNT /SET COUNT=0
012760 5257 JMP FRETRN /RETURN
012761 0000 SETUP, 0 /SETUP POINTERS FOR QUEUE ROUTINES
012762 3200 DCA FILLQ /ALL RETURNS THROUGH FILLQ
012763 1436 TAD I ZMYCDIF /GET RETURN CIF CDF
012764 3257 DCA FRETRN /PREPARE RETURN TO USER FIELD
012765 1600 TAD I FILLQ /GET PARAMETER
012766 2200 ISZ FILLQ /
012767 1776 TAD I (BASE /ADD HIS (!) BASE
012770 6211 CDF 10 /SELECT THE FIELD OF BUFFERS
012771 3261 DCA XCOUNT /POINTER TO COUNT
012772 1261 TAD XCOUNT /
012773 7001 IAC /POINTER TO READP IN AC
012774 5761 JMP I SETUP
012776 0030
012777 7760
3000 PAGE /END IFNZRO BGMAX >
/M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 149
/M4.PA 9-JUN-80
/**UASEM VERSION**
/****************************************************
/********* D A T A S T R U C T U R E S ********
/****************************************************
3000 DOTF10=.
0000 FIELD 0
3200 *DOTF00
/THE DISK QUEUE, MUST START AT PAGE BOUND:
003200 0000 SYSQ, ZBLOCK SYSMAX^2
IFNZRO SYSQ&177 <SYQERR,XERROR>
IFDEF TAPE < /TABLE WHICH HOLDS CURRENT TAPE POSITION
003220 0000 TAPETB, ZBLOCK TAPE /FOR EACH UNIT NUMBER >
IFDEF COMLNG <
COMMON, ZBLOCK COMLNG /BLOCK OF LOCATIONS,
/DIFFERENT FOR ANY INSTALLATION >
003222 0000 HRDLST, ZBLOCK 1^2 /EVENT 0 FOR BREAK CHARACTER DETECTION
003224 0000 ZBLOCK INTDEV-1^2 /CONNECTABLE SKIPCHAIN ENTRIES
003232 0000 ZBLOCK SKPDEV-INTDEV^2 /NON-CONNECTABLE SKIPCHAIN ENTRIES
ZBLOCK MAXDEV-SKPDEV^2 /ENTRIES EG. FOR TERMINAL MUX.
003240 0000 ZBLOCK SOFSLOT^2 /ALLOCATABLE SOFTWARE EVENTS
IFNZRO BGMAX <
003310 0000 ZBLOCK 1^2 /ONE SLOT FOR THE BG SCHEDULER
003312 0000 ZBLOCK BGMAX^2 /ONE SLOT FOR EACH BG
0033 BSSLOT=MAXSLOT / >
003320 0000 CLRTAB, ZBLOCK INTDEV-1 /HOLDS CLEAR-IOT'S
/M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 150
/THE COREMAP CONTAINS ONE WORD FOR EVERY MEMORY PAGE IN THE
/FOREGROUND. THE FOLLOWING ENCODING APPLIES:
/0 FREE PAGE
/-3 OCCUPIED BY RESIDENT CODE OR OTHERWISE UNUSABLE
/-2 ALLOCATED BUFFER PAGE, BUT NOT LAST PAGE OF BUFFER
/-1 LAST PAGE OF ALLOCATED BUFFER
/NEG. TCBP OF EXTERNAL TASK LOADED HERE
/POS. -TCBP OF EXTERNAL TASK THAT HAS 'RELEASED' ITS MEMORY
/THE PROPER CONTENTS OF THIS MAP IS ONLY KNOWN DURING PASS 2.
/SO DURING PASS 1 WE JUST RESERVE THE REQUIRED AMOUNT OF MEMORY
IFNZRO PASS1 <
CORMAP, *FIELDS^40+. / >
IFZERO PASS1 <
/FIRST MAKE SURE THAT ALL ENFXX'S ARE AT A PAGE BOUND:
4600 ENDF00=ENDF00+177&7600
4200 ENDF10=ENDF10+177&7600
0200 ENDF20=ENDF20+177&7600
0200 ENDF30=ENDF30+177&7600
0200 ENDF40=ENDF40+177&7600
0200 ENDF50=ENDF50+177&7600
0200 ENDF60=ENDF60+177&7600
0200 ENDF70=ENDF70+177&7600
/THE MONITOR AREA IN FIELD 0:
003323 7775 IFNZRO ENDF00&200 <-3>
003324 7775 IFNZRO ENDF00&400 <-3;-3>
003325 7775
IFNZRO ENDF00&1000 <-3;-3;-3;-3>
IFNZRO ENDF00&2000 <-3;-3;-3;-3;-3;-3;-3;-3>
003326 7775 IFNZRO ENDF00&4000 <-3;-3;-3;-3;-3;-3;-3;-3
003327 7775
003330 7775
003331 7775
003332 7775
003333 7775
003334 7775
003335 7775
003336 7775 -3;-3;-3;-3;-3;-3;-3;-3>
003337 7775
003340 7775
003341 7775
003342 7775
003343 7775
003344 7775
003345 7775
/THE EMPTY AREA IN FIELD 0:
003346 0000 ZBLOCK CORMAP+37-.
/DON'T TOUCH THE LAST PAGE (OS8):
003362 7775 -3
/NOW FOR FIELD 1:
IFZERO FIELDS-2&4000 <
003363 7775 IFNZRO ENDF10&200 <-3>
IFNZRO ENDF10&400 <-3;-3>
IFNZRO ENDF10&1000 <-3;-3;-3;-3>
IFNZRO ENDF10&2000 <-3;-3;-3;-3;-3;-3;-3;-3>
/M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 150-1
003364 7775 IFNZRO ENDF10&4000 <-3;-3;-3;-3;-3;-3;-3;-3
003365 7775
003366 7775
003367 7775
003370 7775
003371 7775
003372 7775
003373 7775
003374 7775 -3;-3;-3;-3;-3;-3;-3;-3>
003375 7775
003376 7775
003377 7775
003400 7775
003401 7775
003402 7775
003403 7775
/FREE AREA IN FIELD 1:
003404 0000 ZBLOCK CORMAP+77-.
003422 7775 -3 /LAST PAGE IS FOR OS/8
/NOW FOR FIELD 2:
IFZERO FIELDS-3&4000 <
003423 7775 IFNZRO ENDF20&200 <-3>
IFNZRO ENDF20&400 <-3;-3>
IFNZRO ENDF20&1000 <-3;-3;-3;-3>
IFNZRO ENDF20&2000 <-3;-3;-3;-3;-3;-3;-3;-3>
IFNZRO ENDF20&4000 <-3;-3;-3;-3;-3;-3;-3;-3
-3;-3;-3;-3;-3;-3;-3;-3>
003424 0000 ZBLOCK CORMAP+140-.
IFDEF SYRL01 <*.-1;-3 /RETAIN SYSTEM HANDLER FOR RL01 >
IFDEF SYRX02 <*.-1;-3 /RETAIN SYSTEM HANDLER FOR RX02 >
/NOW FOR FIELD 3:
IFZERO FIELDS-4&4000 <
IFNZRO ENDF30&200 <-3>
IFNZRO ENDF30&400 <-3;-3>
IFNZRO ENDF30&1000 <-3;-3;-3;-3>
IFNZRO ENDF30&2000 <-3;-3;-3;-3;-3;-3;-3;-3>
IFNZRO ENDF30&4000 <-3;-3;-3;-3;-3;-3;-3;-3
-3;-3;-3;-3;-3;-3;-3;-3>
ZBLOCK CORMAP+200-.
/NOW FOR FIELD 4:
IFZERO FIELDS-5&4000 <
IFNZRO ENDF40&200 <-3>
IFNZRO ENDF40&400 <-3;-3>
IFNZRO ENDF40&1000 <-3;-3;-3;-3>
IFNZRO ENDF40&2000 <-3;-3;-3;-3;-3;-3;-3;-3>
IFNZRO ENDF40&4000 <-3;-3;-3;-3;-3;-3;-3;-3
-3;-3;-3;-3;-3;-3;-3;-3>
ZBLOCK CORMAP+240-.
/NOW FOR FIELD 5:
IFZERO FIELDS-6&4000 <
IFNZRO ENDF50&200 <-3>
IFNZRO ENDF50&400 <-3;-3>
IFNZRO ENDF50&1000 <-3;-3;-3;-3>
IFNZRO ENDF50&2000 <-3;-3;-3;-3;-3;-3;-3;-3>
IFNZRO ENDF50&4000 <-3;-3;-3;-3;-3;-3;-3;-3
/M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 150-2
-3;-3;-3;-3;-3;-3;-3;-3>
ZBLOCK CORMAP+300-.
/NOW FOR FIELD 6:
IFZERO FIELDS-7&4000 <
IFNZRO ENDF60&200 <-3>
IFNZRO ENDF60&400 <-3;-3>
IFNZRO ENDF60&1000 <-3;-3;-3;-3>
IFNZRO ENDF60&2000 <-3;-3;-3;-3;-3;-3;-3;-3>
IFNZRO ENDF60&4000 <-3;-3;-3;-3;-3;-3;-3;-3
-3;-3;-3;-3;-3;-3;-3;-3>
ZBLOCK CORMAP+340-.
/NOE FOR FIELD 7:
IFZERO FIELDS-10&4000 <
IFNZRO ENDF70&200 <-3>
IFNZRO ENDF70&400 <-3;-3>
IFNZRO ENDF70&1000 <-3;-3;-3;-3>
IFNZRO ENDF70&2000 <-3;-3;-3;-3;-3;-3;-3;-3>
IFNZRO ENDF70&4000 <-3;-3;-3;-3;-3;-3;-3;-3
-3;-3;-3;-3;-3;-3;-3;-3>
ZBLOCK CORMAP+400-. / >>>>>>>
/END OF PASS2 CONDITION >
/NOW COMES THE END OF THE MAP. FOR PROPPER OPERATION OF
/THE ROUTINE HOLE, THE MAP SHOULD END IN -3;0:
003463 7775 -3
003464 0000 MAPEND, 0
/M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 151
003465 0000 NAMLST, ZBLOCK MAXNAM+17
003554 0000 LASTNM, 0 /ONE LOC EXTRA FOR SEARCH LOOP
4000 IFZERO .&4000 <*4000 /TCBP'S MUST ALWAYS BE NEGATIVE >
TCBTAB, /THE TABLE OF TASK CONTROL BLOCKS
004000 2711 "T^100+"I&3777;1;DGNTIM;0
004001 0001
004002 3112
004003 0000
004004 0000 0;CDF+00%2;0;0
004005 3100
004006 0000
004007 0000
004010 2631 "S^100+"Y&3777;0;SY;0
004011 0000
004012 2600
004013 0000
004014 0000 0;CDF+00%2;0;0
004015 3100
004016 0000
004017 0000
IFDEF SYRX02 <
"S^100+"Z&3777;0;SZ;0
0;CDF+00%2;0;0 / >
IFDEF SYRL01 < /FAKE SY FOR RLC
"S^100+"C&3777;0;SC;0
0;CDF+00%2;0;0 / >
IFDEF DKUSED <
004020 0713 "D^100+"K&3777;0;DK;0
004021 0000
004022 2463
004023 0000
004024 0010 10;CDF 00%2;0;0 / >
004025 3100
004026 0000
004027 0000
0000 IFNDEF KL8XX <TT1LST=0;KK1LST=0>
0000
004030 2661 "T^100+"1&3777;0;TT;TT1LST
004031 0000
004032 0200
004033 0000
004034 0010 T1TCBP, 10;CDF 00%2;0;0
004035 3100
004036 0000
004037 0000
004040 1561 "K^100+"1&3777;0;KK;KK1LST
/M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 151-1
004041 0000
004042 0315
004043 0000
004044 0010 K1TCBP, 10;CDF+00%2;0;0
004045 3100
004046 0000
004047 0000
IFDEF KL8E2 <
"T^100+"2&3777;0;TT;TT2LST;10;CDF 00%2;0;0
"K^100+"2&3777;0;KK;KK2LST;10;CDF 00%2;0;0 / >
IFDEF KL8E3 <
"T^100+"3&3777;0;TT;TT3LST;10;CDF 00%2;0;0
"K^100+"3&3777;0;KK;KK3LST;10;CDF 00%2;0;0 / >
IFDEF KL8E4 <
"T^100+"4&3777;0;TT;TT4LST;10;CDF 00%2;0;0
"K^100+"4&3777;0;KK;KK4LST;10;CDF 00%2;0;0 / >
IFDEF KL8E5 <
"T^100+"5&3777;0;TT;TT5LST;10;CDF 00%2;0;0
"K^100+"5&3777;0;KK;KK5LST;10;CDF 00%2;0;0 / >
IFDEF KL8E6 <
"T^100+"6&3777;0;TT;TT6LST;10;CDF 00%2;0;0
"K^100+"6&3777;0;KK;KK6LST;10;CDF 00%2;0;0 / >
IFDEF KL8E7 <
"T^100+"7&3777;0;TT;TT7LST;10;CDF 00%2;0;0
"K^100+"7&3777;0;KK;KK7LST;10;CDF 00%2;0;0 / >
IFDEF KL8A1 <
"T-"K^100+KL8NAM+0;0;TT;TY0LST;10;CDF%2;0;0
KL8NAM+0;0;KK;KB0LST;10;CDF%2;0;0
"T-"K^100+KL8NAM+1;0;TT;TY1LST;10;CDF%2;0;0
KL8NAM+0;0;KK;KB1LST;10;CDF%2;0;0
"T-"K^100+KL8NAM+2;0;TT;TY2LST;10;CDF%2;0;0
KL8NAM+0;0;KK;KB2LST;10;CDF%2;0;0
"T-"K^100+KL8NAM+3;0;TT;TY3LST;10;CDF%2;0;0
KL8NAM+0;0;KK;KB3LST;10;CDF%2;0;0
/END IFDEF KL8A1 >
/M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 152
IFNZRO BGMAX <
004050 1361 KHIBG1, "I^100+"1&3777;1;KHIST ;BG1;10;CDF 00%2;0;0
004051 0001
004052 2026
004053 3707
004054 0010
004055 3100
004056 0000
004057 0000
004060 2161 KHOBG1, "O^100+"1&3777;0;KHO ;BG1;10;CDF 00%2;0;0
004061 0000
004062 2403
004063 3707
004064 0010
004065 3100
004066 0000
004067 0000
004070 0761 EMBG1, "E^100+"1&3777;1;EMSTRT ;BG1;10;CDF 00%2;0;0
004071 0001
004072 1476
004073 3707
004074 0010
004075 3100
004076 0000
004077 0000
IFZERO BGMAX-2&4000 <
004100 1362 KHIBG2, "I^100+"2&3777;1;KHIST ;BG2;10;CDF 00%2;0;0
004101 0001
004102 2026
004103 3775
004104 0010
004105 3100
004106 0000
004107 0000
004110 2162 KHOBG2, "O^100+"2&3777;0;KHO ;BG2;10;CDF 00%2;0;0
004111 0000
004112 2403
004113 3775
004114 0010
004115 3100
004116 0000
004117 0000
004120 0762 EMBG2, "E^100+"2&3777;1;EMSTRT ;BG2;10;CDF 00%2;0;0
004121 0001
004122 1476
004123 3775
004124 0010
004125 3100
004126 0000
004127 0000
IFZERO BGMAX-3&4000 <
004130 1363 KHIBG3, "I^100+"3&3777;1;KHIST ;BG3;10;CDF 00%2;0;0
004131 0001
/M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 152-1
004132 2026
004133 4063
004134 0010
004135 3100
004136 0000
004137 0000
004140 2163 KHOBG3, "O^100+"3&3777;0;KHO ;BG3;10;CDF 00%2;0;0
004141 0000
004142 2403
004143 4063
004144 0010
004145 3100
004146 0000
004147 0000
004150 0763 EMBG3, "E^100+"3&3777;1;EMSTRT ;BG3;10;CDF 00%2;0;0
004151 0001
004152 1476
004153 4063
004154 0010
004155 3100
004156 0000
004157 0000
IFZERO BGMAX-4&4000 <
KHIBG4, "I^100+"4&3777;1;KHIST ;BG4;10;CDF 00%2;0;0
KHOBG4, "O^100+"4&3777;0;KHO ;BG4;10;CDF 00%2;0;0
EMBG4, "E^100+"4&3777;1;EMSTRT ;BG4;10;CDF 00%2;0;0
IFZERO BGMAX-5&4000 <
KHIBG5, "I^100+"5&3777;1;KHIST ;BG5;10;CDF 00%2;0;0
KHOBG5, "O^100+"5&3777;0;KHO ;BG5;10;CDF 00%2;0;0
EMBG5, "E^100+"5&3777;1;EMSTRT ;BG5;10;CDF 00%2;0;0
IFZERO BGMAX-6&4000 <
KHIBG6, "I^100+"6&3777;1;KHIST ;BG6;10;CDF 00%2;0;0
KHOBG6, "O^100+"6&3777;0;KHO ;BG6;10;CDF 00%2;0;0
EMBG6, "E^100+"6&3777;1;EMSTRT ;BG6;10;CDF 00%2;0;0
IFZERO BGMAX-7&4000 <
KHIBG7, "I^100+"7&3777;1;KHIST ;BG7;10;CDF 00%2;0;0
KHOBG7, "O^100+"7&3777;0;KHO ;BG7;10;CDF 00%2;0;0
EMBG7, "E^100+"7&3777;1;EMSTRT ;BG7;10;CDF 00%2;0;0 >>>>>>>
004160 0000 LOADPT, 0 /ZERO IS TERMINATOR
IFNZRO MAXNAM^10+TCBTAB-.&4000 <TCBOVF,XERROR> /TO MANY TASKS !
004161 0000 ZBLOCK MAXNAM^10+TCBTAB-. /THE REST OF TCBTAB IS
/FOR DISK-RESIDENT TASKS
004500 0000 ZBLOCK .+200&7600-.&7770 /USE THE REST OF THIS PAGE TOO !
4600 *.
IFNZRO PASS1 <ENDF00=.-1>
IFZERO ENDF00+200&4000 <F00ERR,XERROR /CORE OVERFLOW >
/M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 153
/**********************************************************
/********** D A T A A R E A F I E L D 1 **********
/**********************************************************
0001 FIELD 1
3000 *DOTF10
IFNZRO BGMAX <
/THE TERMINAL BUFFERS AND THE TERMINAL BUFFER POOL
7760 O=-BSIZE
3000 *.+BSIZE-1&O /BUFFERS START AT 'NICE' ADDRESS
IFZERO BGMAX-1&4000 <
013000 0000 BG1IN, 0;"R;215;ZBLOCK BSIZE-3 /FIRST BLOCK OF INPUT BUFFER
013001 0322
013002 0215
013003 0000
013020 0000 BG1OUT, ZBLOCK BSIZE /FIRST BLOCK OF OUTPUT BUFFER >
IFZERO BGMAX-2&4000 <
013040 0000 BG2IN, 0;"R;215;ZBLOCK BSIZE-3 /FIRST BLOCK OF INPUT BUFFER
013041 0322
013042 0215
013043 0000
013060 0000 BG2OUT, ZBLOCK BSIZE /FIRST BLOCK OF OUTPUT BUFFER >
IFZERO BGMAX-3&4000 <
013100 0000 BG3IN, 0;"R;215;ZBLOCK BSIZE-3 /FIRST BLOCK OF INPUT BUFFER
013101 0322
013102 0215
013103 0000
013120 0000 BG3OUT, ZBLOCK BSIZE /FIRST BLOCK OF OUTPUT BUFFER >
IFZERO BGMAX-4&4000 <
BG4IN, 0;"R;215;ZBLOCK BSIZE-3 /FIRST BLOCK OF INPUT BUFFER
BG4OUT, ZBLOCK BSIZE /FIRST BLOCK OF OUTPUT BUFFER >
IFZERO BGMAX-5&4000 <
BG5IN, 0;"R;215;ZBLOCK BSIZE-3 /FIRST BLOCK OF INPUT BUFFER
BG5OUT, ZBLOCK BSIZE /FIRST BLOCK OF OUTPUT BUFFER >
IFZERO BGMAX-6&4000 <
BG6IN, 0;"R;215;ZBLOCK BSIZE-3 /FIRST BLOCK OF INPUT BUFFER
BG6OUT, ZBLOCK BSIZE /FIRST BLOCK OF OUTPUT BUFFER >
IFZERO BGMAX-7&4000 <
BG7IN, 0;"R;215;ZBLOCK BSIZE-3 /FIRST BLOCK OF INPUT BUFFER
BG7OUT, ZBLOCK BSIZE /FIRST BLOCK OF OUTPUT BUFFER >
/M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 154
013140 0000 ZBLOCK BSIZE /LAST BLOCK IN THE POOL
IFNZRO POOLN-1&1 <
013160 3140 .-BSIZE;ZBLOCK BSIZE-1 >
013161 0000
IFNZRO POOLN-1&2 <
013200 3160 .-BSIZE;ZBLOCK BSIZE-1
013201 0000
013220 3200 .-BSIZE;ZBLOCK BSIZE-1 >
013221 0000
IFNZRO POOLN-1&4 <
013240 3220 .-BSIZE;ZBLOCK BSIZE-1
013241 0000
013260 3240 .-BSIZE;ZBLOCK BSIZE-1
013261 0000
013300 3260 .-BSIZE;ZBLOCK BSIZE-1
013301 0000
013320 3300 .-BSIZE;ZBLOCK BSIZE-1 >
013321 0000
IFNZRO POOLN-1&10 <
.-BSIZE;ZBLOCK BSIZE-1
.-BSIZE;ZBLOCK BSIZE-1
.-BSIZE;ZBLOCK BSIZE-1
.-BSIZE;ZBLOCK BSIZE-1
.-BSIZE;ZBLOCK BSIZE-1
.-BSIZE;ZBLOCK BSIZE-1
.-BSIZE;ZBLOCK BSIZE-1
.-BSIZE;ZBLOCK BSIZE-1 >
IFNZRO POOLN-1&20 <
.-BSIZE;ZBLOCK BSIZE-1
.-BSIZE;ZBLOCK BSIZE-1
.-BSIZE;ZBLOCK BSIZE-1
.-BSIZE;ZBLOCK BSIZE-1
.-BSIZE;ZBLOCK BSIZE-1
.-BSIZE;ZBLOCK BSIZE-1
.-BSIZE;ZBLOCK BSIZE-1
.-BSIZE;ZBLOCK BSIZE-1
.-BSIZE;ZBLOCK BSIZE-1
.-BSIZE;ZBLOCK BSIZE-1
.-BSIZE;ZBLOCK BSIZE-1
.-BSIZE;ZBLOCK BSIZE-1
.-BSIZE;ZBLOCK BSIZE-1
.-BSIZE;ZBLOCK BSIZE-1
.-BSIZE;ZBLOCK BSIZE-1
.-BSIZE;ZBLOCK BSIZE-1 >
/M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 155
IFNZRO POOLN-1&40 <
.-BSIZE;ZBLOCK BSIZE-1
.-BSIZE;ZBLOCK BSIZE-1
.-BSIZE;ZBLOCK BSIZE-1
.-BSIZE;ZBLOCK BSIZE-1
.-BSIZE;ZBLOCK BSIZE-1
.-BSIZE;ZBLOCK BSIZE-1
.-BSIZE;ZBLOCK BSIZE-1
.-BSIZE;ZBLOCK BSIZE-1
.-BSIZE;ZBLOCK BSIZE-1
.-BSIZE;ZBLOCK BSIZE-1
.-BSIZE;ZBLOCK BSIZE-1
.-BSIZE;ZBLOCK BSIZE-1
.-BSIZE;ZBLOCK BSIZE-1
.-BSIZE;ZBLOCK BSIZE-1
.-BSIZE;ZBLOCK BSIZE-1
.-BSIZE;ZBLOCK BSIZE-1
.-BSIZE;ZBLOCK BSIZE-1
.-BSIZE;ZBLOCK BSIZE-1
.-BSIZE;ZBLOCK BSIZE-1
.-BSIZE;ZBLOCK BSIZE-1
.-BSIZE;ZBLOCK BSIZE-1
.-BSIZE;ZBLOCK BSIZE-1
.-BSIZE;ZBLOCK BSIZE-1
.-BSIZE;ZBLOCK BSIZE-1
.-BSIZE;ZBLOCK BSIZE-1
.-BSIZE;ZBLOCK BSIZE-1
.-BSIZE;ZBLOCK BSIZE-1
.-BSIZE;ZBLOCK BSIZE-1
.-BSIZE;ZBLOCK BSIZE-1
.-BSIZE;ZBLOCK BSIZE-1
.-BSIZE;ZBLOCK BSIZE-1
.-BSIZE;ZBLOCK BSIZE-1 >
013340 3320 FQLAST, .-BSIZE;ZBLOCK BSIZE-1 /LAST BLOCK OF FREE QUEUE
013341 0000
/M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 156
013360 3416 FRESLT, FBLKO /POINTER TO FREE SLOT IN SWPTAB
013361 0000 BSTAB, 0 /STARTBLOCK OF SWPFIL.M8
IFZERO BGMAX-1&4000 <
0001 BGID=BG1-BGDATA+1
013362 0001 0000+BGID /BG1, FIELD 0
IFNDEF SINGL8 <
013363 0000 ZBLOCK BGFLDS-1 /REAL MEMORY INITIALLY EMPTY >
013367 1001 1000+BGID /BG1, FIELD 1
IFZERO BGCORE-3&4000 <
013370 2001 2000+BGID /BG1, FIELD 2 >
IFZERO BGCORE-4&4000 <
013371 3001 3000+BGID /BG1, FIELD 3 >
IFZERO BGCORE-5&4000 <
013372 4001 4000+BGID /BG1, FIELD 4 >
IFZERO BGCORE-6&4000 <
013373 5001 5000+BGID /BG1, FIELD 5 >
IFZERO BGCORE-7&4000 <
013374 6001 6000+BGID /BG1, FIELD 6 >
IFZERO BGCORE-10&4000 <
013375 7001 7000+BGID /BG1, FIELD 7 >>
IFZERO BGMAX-2&4000 <
0067 BGID=BG2-BGDATA+1
013376 0067 0000+BGID /BG2, FIELD 0
013377 1067 1000+BGID /BG2, FIELD 1
IFZERO BGCORE-3&4000 <
013400 2067 2000+BGID /BG2, FIELD 2 >
IFZERO BGCORE-4&4000 <
013401 3067 3000+BGID /BG2, FIELD 3 >
IFZERO BGCORE-5&4000 <
013402 4067 4000+BGID /BG2, FIELD 4 >
IFZERO BGCORE-6&4000 <
013403 5067 5000+BGID /BG2, FIELD 5 >
IFZERO BGCORE-7&4000 <
013404 6067 6000+BGID /BG2, FIELD 6 >
IFZERO BGCORE-10&4000 <
013405 7067 7000+BGID /BG2, FIELD 7 >>
IFZERO BGMAX-3&4000 <
0155 BGID=BG3-BGDATA+1
013406 0155 0000+BGID /BG3, FIELD 0
013407 1155 1000+BGID /BG3, FIELD 1
IFZERO BGCORE-3&4000 <
013410 2155 2000+BGID /BG3, FIELD 2 >
IFZERO BGCORE-4&4000 <
013411 3155 3000+BGID /BG3, FIELD 3 >
IFZERO BGCORE-5&4000 <
013412 4155 4000+BGID /BG3, FIELD 4 >
IFZERO BGCORE-6&4000 <
013413 5155 5000+BGID /BG3, FIELD 5 >
IFZERO BGCORE-7&4000 <
013414 6155 6000+BGID /BG3, FIELD 6 >
IFZERO BGCORE-10&4000 <
013415 7155 7000+BGID /BG3, FIELD 7 >>
IFZERO BGMAX-4&4000 <
BGID=BG4-BGDATA+1
0000+BGID /BG4, FIELD 0
/M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 156-1
1000+BGID /BG4, FIELD 1
IFZERO BGCORE-3&4000 <
2000+BGID /BG4, FIELD 2 >
IFZERO BGCORE-4&4000 <
3000+BGID /BG4, FIELD 3 >
IFZERO BGCORE-5&4000 <
4000+BGID /BG4, FIELD 4 >
IFZERO BGCORE-6&4000 <
5000+BGID /BG4, FIELD 5 >
IFZERO BGCORE-7&4000 <
6000+BGID /BG4, FIELD 6 >
IFZERO BGCORE-10&4000 <
7000+BGID /BG4, FIELD 7 >>
IFZERO BGMAX-5&4000 <
BGID=BG5-BGDATA+1
0000+BGID /BG5, FIELD 0
1000+BGID /BG5, FIELD 1
IFZERO BGCORE-3&4000 <
2000+BGID /BG5, FIELD 2 >
IFZERO BGCORE-4&4000 <
3000+BGID /BG5, FIELD 3 >
IFZERO BGCORE-5&4000 <
4000+BGID /BG5, FIELD 4 >
IFZERO BGCORE-6&4000 <
5000+BGID /BG5, FIELD 5 >
IFZERO BGCORE-7&4000 <
6000+BGID /BG5, FIELD 6 >
IFZERO BGCORE-10&4000 <
7000+BGID /BG5, FIELD 7 >>
IFZERO BGMAX-6&4000 <
BGID=BG6-BGDATA+1
0000+BGID /BG6, FIELD 0
1000+BGID /BG6, FIELD 1
IFZERO BGCORE-3&4000 <
2000+BGID /BG6, FIELD 2 >
IFZERO BGCORE-4&4000 <
3000+BGID /BG6, FIELD 3 >
IFZERO BGCORE-5&4000 <
4000+BGID /BG6, FIELD 4 >
IFZERO BGCORE-6&4000 <
5000+BGID /BG6, FIELD 5 >
IFZERO BGCORE-7&4000 <
6000+BGID /BG6, FIELD 6 >
IFZERO BGCORE-10&4000 <
7000+BGID /BG6, FIELD 7 >>
IFZERO BGMAX-7&4000 <
BGID=BG7-BGDATA+1
0000+BGID /BG7, FIELD 0
1000+BGID /BG7, FIELD 1
IFZERO BGCORE-3&4000 <
2000+BGID /BG7, FIELD 2 >
IFZERO BGCORE-4&4000 <
3000+BGID /BG7, FIELD 3 >
IFZERO BGCORE-5&4000 <
4000+BGID /BG7, FIELD 4 >
/M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 156-2
IFZERO BGCORE-6&4000 <
5000+BGID /BG7, FIELD 5 >
IFZERO BGCORE-7&4000 <
6000+BGID /BG7, FIELD 6 >
IFZERO BGCORE-10&4000 <
7000+BGID /BG7, FIELD 7 >>
013416 0000 FBLKO, 0 /ONE EMPTY SLOT IN SWPFIL
3367 SWPTAB=BSTAB+1+BGFLDS /THESE 3 LISTS MUST BE TOGETHER!!! >
/M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 157
IFDEF KL8XX < /LIST FOR THE REENTRANT TTY DRIVERS
IFNDEF KL8A1 <O=2>
IFDEF KL8A1 <O=3>
TT1LST, 0 /TTCHAR
TTY1 /TTEVNT
0 /TTRET
TLS /TTTLS
ZBLOCK O /TTSAV,(TTLINE),TTCOUNT
-T1CHAR /TTFCHR
-T1FILL /TTFILL
0 /TTTMP
T1BACK-210 /TTBACK MUST BE IN THIS ORDER!!
KK1LST, KB1
-T1ESCP
IFDEF KL8E2 <
TT2LST, 0
TTY2
0
6016+KL8E2
ZBLOCK O
-T2CHAR
-T2FILL
0
T2BACK-210
KK2LST, KB2
-T2ESCP / >
IFDEF KL8E3<
TT3LST, 0
TTY3
0
6016+KL8E3
ZBLOCK O
-T3CHAR
-T3FILL
0
T3BACK-210
KK3LST, KB3
-T3ESCP / >
IFDEF KL8E4 <
TT4LST, 0
TTY4
0
6016+KL8E4
ZBLOCK O
-T4CHAR
-T4FILL
0
T4BACK-210
KK4LST, KB4
-T4ESCP / >
IFDEF KL8E5 <
TT5LST, 0
TTY5
0
6016+KL8E5
/M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 157-1
ZBLOCK O
-T5CHAR
-T5FILL
0
T5BACK-210
KK5LST, KB5
-T5ESCP / >
IFDEF KL8E6<
TT6LST, 0
TTY6
0
6016+KL8E6
ZBLOCK O
-T6CHAR
-T6FILL
0
T6BACK-210
KK6LST, KB6
-T6ESCP / >
IFDEF KL8E7 <
TT7LST, 0
TTY7
0
6016+KL8E7
ZBLOCK O
-T7CHAR
-T7FILL
0
T7BACK-210
KK7LST, KB7
-T7ESCP / >
IFDEF KL8A1 <
TY0LST, 0
MUX1TT
0
KL8A1+6004
0
400^0
0
-C0CHAR
-C0FILL
0
C0BACK-210
KB0LST, MUX1KB
-C0ESCP
TY1LST, 0
MUX1TT+1
0
KL8A1+6004
0
400^1
0
-C1CHAR
-C1FILL
0
/M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 157-2
C1BACK-210
KB1LST, MUX1KB+1
-C1ESCP
TY2LST, 0
MUX1TT+2
0
KL8A1+6004
0
400^2
0
-C2CHAR
-C2FILL
0
C2BACK-210
KB2LST, MUX1KB+2
-C2ESCP
TY3LST, 0
MUX1TT+3
0
KL8A1+6004
0
400^3
0
-C3CHAR
-C3FILL
0
C3BACK-210
KB3LST, MUX1KB+3
-C3ESCP
/END IFDEF KL8A1 >
/END IFDEF KL8XX >
/M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 158
IFNZRO BGMAX <
/DISPATCH TABLE FOR FAKEHANDLER:
013417 6263 HNDTAB, -EMCHNL+EMDOT /0 EMULATOR FOR CHANNEL 0-3
0010 SYSCHN=.-HNDTAB^10
013420 0723 "D^100+"S&3777 /1 FOR SYSTEM-DISK PUBLIC DEVICES
IFDEF DSK <
DSKCHN=.-HNDTAB^10
"D^100+"N&3777 /T FOR NON-SYSTEM DISK PUBLIC DEVICES >
IFDEF TAPE <
0020 DTACHN=.-HNDTAB^10
013421 2705 "T^100+"E&3777 /U FOR DTA0:-DTA7: (TUA0:-TUA7:) >
IFDEF LPT <
0030 LPTCHN=.-HNDTAB^10
013422 1705 "L^100+"E&3777 /V FOR LPT: >
IFDEF RXA <
RXACHN=.-HNDTAB^10
"F^100+"E&3777 /W FOR RXA0:-RXA7: >
IFDEF SYRL01 <RL01DS=1 >
IFDEF NSRL01 <RL01DS=1>
IFDEF RL01DS <
RLCCHN=.-HNDTAB^10
"D^100+"C&3777 /X FOR RLC DEVICES >
IFDEF CRD <
CRDCHN=.-HNDTAB^10
"K^100+"E&3777 /Y FOR CDR: >
013423 7604 IFZERO HNDTAB+07-.&4000 < -EMERROR+EMDOT / RESERVED >
013424 7604 IFZERO HNDTAB+07-.&4000 < -EMERROR+EMDOT / RESERVED >
013425 7604 IFZERO HNDTAB+07-.&4000 < -EMERROR+EMDOT / RESERVED >
013426 7604 IFZERO HNDTAB+07-.&4000 < -EMERROR+EMDOT / RESERVED >
IFZERO HNDTAB+07-.&4000 < -EMERROR+EMDOT / RESERVED >
IFZERO HNDTAB+07-.&4000 < -EMERROR+EMDOT / RESERVED >
IFNZRO HNDTAB+10-.&4000 <CHNOVR,__ / >
/TABLE OF EXECUTABLE IOT'S /0=NOT EXECUTABLE
/.GT.0="N^100+"A&3777 TASK'S NAME /.LT.0= RELATIVE DISTANCE TO SERVICE CODE
013427 7775 EMTAB, -EM00+EMDOT /600X
013430 0000 ZBLOCK EMTAB+3-.
013432 7773 -EM03+EMDOT /603X
013433 7773 -EM03+EMDOT /604X
013434 0000 ZBLOCK EMTAB+20-.
013447 7771 -EM20+EMDOT /620X
013450 7771 -EM20+EMDOT /621X
013451 7771 -EM20+EMDOT /622X
013452 7771 -EM20+EMDOT /623X
013453 7771 -EM20+EMDOT /624X
013454 7771 -EM20+EMDOT /625X
013455 7771 -EM20+EMDOT /626X
013456 7771 -EM20+EMDOT /627X
IFDEF FPP <
ZBLOCK EMTAB+55-.
-EM55+EMDOT /655X
-EM55+EMDOT /656X >
013457 0000 ZBLOCK EMTAB+77-.
013526 7765 -EMGIGA+EMDOT /GIANT IOT =6770
/M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 159
/
/TABLE FOR GROUP 6200-6277 IOT'S WHICH NEED SPECIAL DECODING
/
013527 7575 EM20TB, -EMXNOP+EMDOT /6200 LXM OF KT8A
013530 7704 -EMCDIF+EMDOT /6201 CDF 0
013531 7704 -EMCDIF+EMDOT /6202 CIF 0
013532 7704 -EMCDIF+EMDOT /6203 CDI 0
013533 7604 -EMERROR+EMDOT /6204 CINT: ????
013534 7575 -EMXNOP+EMDOT /6205 CDF 100 OR DM8E: RTM
013535 7604 -EMERROR+EMDOT /6206 CIF 100
013536 7604 -EMERROR+EMDOT /6207 CDI 100
013537 7604 -EMERROR+EMDOT /6210 GTS OF KT8A
013540 7704 -EMCDIF+EMDOT /6211 CDF 10
013541 7704 -EMCDIF+EMDOT /6212 CIF 10
013542 7704 -EMCDIF+EMDOT /6213 CDI 10
013543 7604 -EMERROR+EMDOT /6214 RDF (SHOULD UNTRAP)
013544 7575 -EMXNOP+EMDOT /6215 CDF 110 OR DM8E: SKME
013545 7604 -EMERROR+EMDOT /6216 CIF 110
013546 7604 -EMERROR+EMDOT /6217 CDI 110
013547 7604 -EMERROR+EMDOT /6220 RTS OF KT8A
IFZERO BGCORE-3&4000 <
013550 7704 -EMCDIF+EMDOT /6221 CDF 20
013551 7704 -EMCDIF+EMDOT /6222 CIF 20
013552 7704 -EMCDIF+EMDOT /6223 CDI 20 >
IFNZRO BGCORE-3&4000 <
-EMXNOP+EMDOT /
-EMERROR+EMDOT /
-EMERROR+EMDOT / >
013553 7604 -EMERROR+EMDOT /6224 RIF (SHOULD UNTRAP)
013554 7575 -EMXNOP+EMDOT /6225 CDF 120 OR DM8E: SKMM
013555 7604 -EMERROR+EMDOT /6226 CIF 120
013556 7604 -EMERROR+EMDOT /6227 CDI 120
013557 7575 -EMXNOP+EMDOT /6230 RXM OF KT8A (NOP FOR ODT)
IFZERO BGCORE-4&4000 <
013560 7704 -EMCDIF+EMDOT /6231 CDF 30
013561 7704 -EMCDIF+EMDOT /6232 CIF 30
013562 7704 -EMCDIF+EMDOT /6233 CDI 30 >
IFNZRO BGCORE-4&4000 <
-EMXNOP+EMDOT /
-EMERROR+EMDOT /
-EMERROR+EMDOT / >
013563 7604 -EMERROR+EMDOT /6234 RIB
013564 7575 -EMXNOP+EMDOT /6235 CDF 130 OR DM8E: LTM
013565 7604 -EMERROR+EMDOT /6236 CIF 130
013566 7604 -EMERROR+EMDOT /6237 CDI 130
013567 7604 -EMERROR+EMDOT /6240 LRR OF KT8A
IFZERO BGCORE-5&4000 <
013570 7704 -EMCDIF+EMDOT /6241 CDF 40
013571 7704 -EMCDIF+EMDOT /6242 CIF 40
013572 7704 -EMCDIF+EMDOT /6243 CDI 40 >
IFNZRO BGCORE-5&4000 <
-EMXNOP+EMDOT /
-EMERROR+EMDOT /
-EMERROR+EMDOT / >
013573 7604 -EMERROR+EMDOT /6244 RMF
/M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 159-1
013574 7575 -EMXNOP+EMDOT /6245 CDF 140 OR DM8E: LRM
013575 7604 -EMERROR+EMDOT /6246 CIF 140
013576 7604 -EMERROR+EMDOT /6247 CDI 140
013577 7604 -EMERROR+EMDOT /6250 RRR OF KT8A
IFZERO BGCORE-6&4000 <
013600 7704 -EMCDIF+EMDOT /6251 CDF 50
013601 7704 -EMCDIF+EMDOT /6252 CIF 50
013602 7704 -EMCDIF+EMDOT /6253 CDI 50 >
IFNZRO BGCORE-6&4000 <
-EMXNOP+EMDOT /
-EMERROR+EMDOT /
-EMERROR+EMDOT / >
013603 7576 -EMXSKP+EMDOT /6254 SINT: SKIP-0N-MULTI8
013604 7575 -EMXNOP+EMDOT /6255 CDF 150
013605 7604 -EMERROR+EMDOT /6256 CIF 150
013606 7604 -EMERROR+EMDOT /6257 CDI 150
013607 7604 -EMERROR+EMDOT /6260 LUSR OF KT8A
IFZERO BGCORE-7&4000 <
013610 7704 -EMCDIF+EMDOT /6261 CDF 60
013611 7704 -EMCDIF+EMDOT /6262 CIF 60
013612 7704 -EMCDIF+EMDOT /6263 CDI 60 >
IFNZRO BGCORE-7&4000 <
-EMXNOP+EMDOT /
-EMERROR+EMDOT /
-EMERROR+EMDOT / >
013613 6772 -EMSPY+EMDOT /6264 CUF: LOOK-INTO-REAL-MEMORY
013614 7575 -EMXNOP+EMDOT /6265 CDF 160 OR DM8E: SMME
013615 7604 -EMERROR+EMDOT /6266 CIF 160
013616 7604 -EMERROR+EMDOT /6267 CDI 160
013617 7604 -EMERROR+EMDOT /6270 RUSR OF KT8A
IFZERO BGCORE-10&4000 <
013620 7704 -EMCDIF+EMDOT /6271 CDF 70
013621 7704 -EMCDIF+EMDOT /6272 CIF 70
013622 7704 -EMCDIF+EMDOT /6273 CDI 70 >
IFNZRO BGCORE-10&4000 <
-EMXNOP+EMDOT /
-EMERROR+EMDOT /
-EMERROR+EMDOT / >
013623 7604 -EMERROR+EMDOT /6274 SUF: ????
013624 7575 -EMXNOP+EMDOT /6275 CDF 170 OR DM8E: CMME
013625 7604 -EMERROR+EMDOT /6276 CIF 170
013626 7604 -EMERROR+EMDOT /6277 CDI 170
/M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 160
/TABLE OF PROCESSOR (GROUP 00) IOT'S
013627 6312 EM00TB, -EMHAND+EMDOT /'SKON': IS HANDLER CALL IN MULTI8
013630 7604 -EMERROR+EMDOT /'ION' : NOT ON VIRTUAL MACHINE
013631 7314 -EMREDY+EMDOT /'IOF' : INTERRUPT IS VIRTUALLY OFF
013632 7314 -EMREDY+EMDOT /'SRQ' : NO INTERRUPT REQUEST
013633 7604 -EMERROR+EMDOT /'GTF' : NO GOOD
013634 7604 -EMERROR+EMDOT /'RTF' : RESTORE WHAT?
IFNDEF EAE <
-EMREDY+EMDOT /'SGT' : NO EAE, NO SKIP >
IFDEF EAE <
013635 7325 -EMSGT+EMDOT /'SGT' : EAE, TEST IF SKIP >
013636 7611 -EMCLCA+EMDOT /'CAF' : DO ALL WE CAN
/DISPATCH TABLE FOR TERMINAL IOT'S
013637 7021 EM03TB, -DO6030+EMDOT /6030
013640 7043 -DO6031+EMDOT /6031
013641 7023 -DO6032+EMDOT /6032
013642 7604 -EMERROR+EMDOT /6033
013643 7002 -DO6034+EMDOT /6034
013644 7604 -EMERROR+EMDOT /6035
013645 7026 -DO6036+EMDOT /6036
013646 7604 -EMERROR+EMDOT /6037
013647 7314 -EMREDY+EMDOT /6040
013650 7576 -EMXSKP+EMDOT /6041
013651 7314 -EMREDY+EMDOT /6042
013652 7604 -EMERROR+EMDOT /6043
013653 7127 -DO6044+EMDOT /6044
013654 7604 -EMERROR+EMDOT /6045
013655 7127 -DO6046+EMDOT /6046
013656 7604 -EMERROR+EMDOT /6047
IFDEF FPP <
/DISPATCH TABLE FOR FPP8A HARDWARE INSTRUCTIONS
EM55TB, -EMERROR+EMDOT /FFST : START MAINTENANCE FIRMWARE
-EMXSKP+EMDOT /FPINT : FPP IS ALWAYS READY
-FPICL+EMDOT /FPICL : CLEAR STATUS AND AC
-FPCOM+EMDOT /FPCOM : SET APTHI AND SELECT FP/DP
-EMREDY+EMDOT /FPHLT : IMPOSSIBLE FOR EMULATOR (BUT ^C)
-FPST+EMDOT /FPST : SET APTLOW, START EMULATOR AND SKIP
-FPRST+EMDOT /FPRST : READ STATUS
-FPIST+EMDOT /FPIST : SKIP, READ STATUS, CLEAR STATUS
-EMERROR+EMDOT /6560 : NOT USED
-EMERROR+EMDOT /FMODE : ENTER MAINTENANCE MODE
-EMERROR+EMDOT /6562 : NOT USED
-EMERROR+EMDOT /FMRB : READ DATA BUFFER
-EMERROR+EMDOT /FMRP : READ MUPC
-EMERROR+EMDOT /FMDO : EXECUTE ONE STEP
-EMERROR+EMDOT /6566 : NOT USED
-FPEP+EMDOT /FPEP : SELECT EP IF AC0=1
/M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 161
/FPP EMULATOR INSTRUCTION DISPATCH LISTS
SPCLST, LDADX /SPECIAL INSTRUCTIONS
JUMPS
FFJXN
FFTRP3
FFTRP4
FFNOP /LTR?
FFNOP /LEA,IMUL?
FFNOP /LEAI,IMULI?
LAXLST, FFLDX /LDADX GROUP
FFADDX
FFNOP
FFNOP
FFNOP
FFNOP
FFNOP
FFNOP
JMPLST, FFJEQ /VARIOUS JUMP INSTR.
FFJGE
FFJLE
FFJA
FFJNE
FFJLT
FFJGT
FFJAL
FFSETX /MUST FOLLOW JMPLST
FFSETB
FFJSA
FFJSR
FFNOP
FFNOP
FFNOP
FFNOP
XRLST, FFALN /MAINLY XR INSTRUCTIONS
FFATX /LIST ONLY 7 LONG!
FFXTA
FFNOP
FFSTRE
FFNOP
FFNOP
OPRLST, FFEXIT /AND THE OPERATES
FFPAUS
FFCLA
FFNEG
FFNORM
FFSTRF
FFSTRD
FFJAC / END IFDEF FPP >
/M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 162
/TABLE OF "GIANT IOT'S", UAC IS INDEX AFTER 6770
013657 6562 GIGATB, -EMTIME+EMDOT /0 TIME-OF-DAY REQUEST
013660 7727 -EMNUMB+EMDOT /1 GET MACHINE AND TERMINAL NUMBER
013661 7550 -EMQUIT+EMDOT /2 DISABLE KEYBOARD ECHO
013662 7547 -EMECHO+EMDOT /3 ENABLE KEYBOARD ECHO
013663 2701 "T^100+"A&3777 /4 TALK
013664 6073 -EMOPEN+EMDOT /5 OPEN/CLOSE PROCESSOR
013665 7172 -EMSTLL+EMDOT /6 STALL THE BG FOR N SECONDS
013666 7177 -ACCRST+EMDOT /7 RESET ACCOUNT REGISTERS
013667 7206 -ACCRD+EMDOT /10 READ ACCOUNT REGISTERS
013670 7604 -EMERROR+EMDOT /11 FREE SLOT
013671 7327 -EMVER+EMDOT /12 6-BIT PACKED MULTI8 VERSION
013672 7435 -BGREL+EMDOT /13 RELEASE DEVICES FOR INTERACTIVE JOB
013673 7604 -EMERROR+EMDOT /14 RESERVED
013674 7604 -EMERROR+EMDOT /15 RESERVED
013675 7604 -EMERROR+EMDOT /16 RESERVED
013676 7604 -EMERROR+EMDOT /17 RESERVED
013677 0000 ZBLOCK GIGATB+GIGAMX-. /END OF GIGATB
/M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 163
/DEFINITIONS FOR BG DATA AREA;ALL RELATIVE
BGDATA,
0000 BG1, RELOC 0 /ALL FOLLOWING SYMBOLS ARE RELATIVE
010000* 5400 USTAT, INACTIVE+BGSTOP+ONDISK /STATUS WORD
010001* 0000 UMQ, 0 /USERS MEMORY QUOTIENT REGISTER
010002* 0000 USC, 0 /MSS.SSS.FFF.XXXA/B MODE,
/STEPCOUNTER AND LOCKED FIELD
010003* 7201 UPC, 7201 /USERS CURRENT PROGRAM COUNTER
010004* 0100 UFLDS, 100 /LGX.XXU.III.FFF: LINK, GREATER-THAN,
/USER MODE, VIRTUAL INSTRUCTION & DATAFIELD
010005* 0000 UAC, 0 /USERS CURRENT ACCUMULATOR
010006* 0000 UINST, 0 /LAST EMULATED INSTRUCTION
010007* 0000 USW, 0 /USERS SWITCH REGISTER (VIRTUAL)
010010* 0000 UTEMP, 0 /SCRATCH LOCATION #1
010011* 0000 UTEM2, 0 /SCRATCH LOCATION #2
010012* 0000 UDTV, ZBLOCK 3 /TRANSFER VECTOR
010015* 0000 UASEM, ZBLOCK ASEMMX /EMULATORS PLUG THEIR NAMES HERE
010025* 0003 UBUFIN, 3 /COUNTER OF INPUT BUFFER
010026* 3001 BG1IN+1 /READ POINTER
010027* 3004 BG1IN+1+3 /WRITE POINTER
010030* 0000 UBUFOUT,0 /COUNTER OF OUTPUT BUFFER
010031* 3021 BG1OUT+1 /READ POINTER
010032* 3021 BG1OUT+1 /WRITE POINTER
010033* 4064 UWRTR, KHOBG1+4 /TCBP OF OUTPUT WRITER
010034* 4074 UCUR, EMBG1+4 /TCBP OF EMULATOR
IFDEF USESY1 <
010035* 2631 UCHNL0, USYS1 /DRIVER FOR USERS' SYS: >
IFNDEF USESY1 <
UCHNL0, "D^100+"K&3777 /DRIVER FOR USERS' SYS: >
010036* 4511 UNUMB, 4511 /FILE STRUCTURED, DEVICE TYPE 51, UNIT #
010037* 2631 "S^100+"Y&3777 /ENTRY FOR DSK0:
010040* 6500 6500 /READ ONLY, OS/8 SYSTEM, UNIT 0
010041* 0000 ZBLOCK 4 /CHANNEL 2-3
010045* 0000 UECHO, 0 /ECHO FLAG, 4000=NO ECHO
IFNDEF SINGL8 <
010046* 0030 UFLD0, FIELDS^10 /FIRST FIELD OF BG1 IN CORE
010047* 0000 ZBLOCK BGCORE-1 /TABLE OF REAL FIELDS, 0=NOT-RESIDENT >
IFDEF SINGL8 <
UFLD0, 20;30;40;50 /ALL FIELDS IN CORE FOR BG1 >
010056* 0000 UCHAR, 0 /THE CURRENT INPUT CHARACTER
IFZERO TTYMAX-1&4000 <
010057* 4044 UKB, K1TCBP+0 /TCBP OF INPUT TASK
010060* 4034 UTTY, T1TCBP+0 /TCBP OF OUTPUT HANDLER >
IFNZRO TTYMAX-1&4000 <
UKB, 0 /DETACHED BACKBGOUND
UTTY, 0 /DETACHED BACKGROUND >
010061* 0000 UCOUNT, 0 /COUNTER FOR "BS"
010062* 0034 USLOT, MAXSLOT+1 /WAIT-FOR-BG-IN-CORE SLOT
010063* 0000 UACCNT, ZBLOCK 2 /LOWORDER, HIGHORDER CPU USAGE
/IN UNITS OF DGNTICK
IFDEF FPP <
UFPST, 0 /FPP STATUS
/M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 163-1
UAPTH, 0 /HIGH 3 BITS OF APT ADDRESS
UAPTL, 0 /LOW 12 BITS OF APT ADDRES >
UNEXT,
010065* 3775 IFNZRO BGMAX-1 <BG2 /POINTER TO NEXT BG >
IFZERO BGMAX-1 <BG1 /POINTER TO FIRST BG >
0066 UEND=. /END FOR THIS BG
3775 RELOC /END OF RELATIVE DEFINITIONS
/M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 164
IFZERO BGMAX-2&4000 < /THE SECOND BG:
0000 BG2, RELOC 0 /ALL FOLLOWING SYMBOLS ARE RELATIVE
010000* 5400 USTAT, INACTIVE+BGSTOP+ONDISK /STATUS FOR BACKGROUND SCHEDULER
010001* 0000 UMQ, 0 /USERS MEMORY QUOTIENT REGISTER
010002* 0000 USC, 0 /MSS.SSS.FFF.XXXA/B MODE,
/STEPCOUNTER AND LOCKED FIELD
010003* 7201 UPC, 7201 /USERS CURRENT PROGRAM COUNTER
010004* 0100 UFLDS, 100 /LGX.XXU.III.FFF: LINK, GREATER-THAN,
/USER MODE, VIRTUAL INSTRUCTION & DATAFIELD
010005* 0000 UAC, 0 /USERS CURRENT ACCUMULATOR
010006* 0000 UINST, 0 /LAST EMULATED INSTRUCTION
010007* 0000 USW, 0 /USERS SWITCH REGISTER (VIRTUAL)
010010* 0000 UTEMP, 0 /SCRATCH LOCATION #1
010011* 0000 UTEM2, 0 /SCRATCH LOCATION #2
010012* 0000 UDTV, ZBLOCK 3 /TRANSFER VECTOR
010015* 0000 UASEM, ZBLOCK ASEMMX /EMULATORS PLUG THEIR NAMES HERE
010025* 0003 UBUFIN, 3 /COUNTER OF INPUT BUFFER
010026* 3041 BG2IN+1 /READ POINTER
010027* 3044 BG2IN+1+3 /WRITE POINTER
010030* 0000 UBUFOUT,0 /COUNTER OF OUTPUT BUFFER
010031* 3061 BG2OUT+1 /READ POINTER
010032* 3061 BG2OUT+1 /WRITE POINTER
010033* 4114 UWRTR, KHOBG2+4 /TCBP OF OUTPUT WRITER
010034* 4124 UCUR, EMBG2+4 /TCBP OF EMULATOR
IFDEF USESY2 <
UCHNL0, USYS2 /DRIVER FOR USERS' SYS: >
IFNDEF USESY2 <
010035* 0713 UCHNL0, "D^100+"K&3777 /DRIVER FOR USERS' SYS: >
010036* 4522 UNUMB, 4522 /FILE STRUCTURED, DEVICE TYPE 52, UNIT #
010037* 2631 "S^100+"Y&3777 /ENTRY FOR DSK0:
010040* 6500 6500 /READ ONLY, OS/8 SYSTEM, UNIT 0
010041* 0000 ZBLOCK 4 /CHANNEL 2-3
010045* 0000 UECHO, 0 /ECHO FLAG, 4000=NO ECHO
IFNDEF SINGL8 <
010046* 0000 UFLD0, ZBLOCK BGCORE /TABLE OF REAL FIELDS >
IFDEF SINGL8 <
UFLD0, 60;70;0;0 /FIELD 0 & 1 IN CORE FOR BG2 >
010056* 0000 UCHAR, 0 /THE CURRENT INPUT CHARACTER
IFZERO TTYMAX-2&4000 <
UKB, K1TCBP+20 /TCBP OF INPUT TASK
UTTY, T1TCBP+20 /TCBP OF OUTPUT HANDLER >
IFNZRO TTYMAX-2&4000 <
010057* 0000 UKB, 0 /DETACHED BACKBGOUND
010060* 0000 UTTY, 0 /DETACHED BACKGROUND >
010061* 0000 UCOUNT, 0 /COUNTER FOR "BS"
010062* 0035 USLOT, MAXSLOT+2 /WAIT-FOR-BG-IN-CORE SLOT
010063* 0000 UACCNT, ZBLOCK 2 /LOWORDER, HIGHORDER CPU USAGE
/IN UNITS OF DGNTICK
IFDEF FPP <
UFPST, 0 /FPP STATUS
UAPTH, 0 /HIGH 3 BITS OF APT ADDRESS
UAPTL, 0 /LOW 12 BITS OF APT ADDRES >
UNEXT,
/M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 164-1
IFZERO BGMAX-2 <BG1> /POINTER TO FIRST BG
010065* 4063 IFNZRO BGMAX-2 <BG3> /POINTER TO NEXT BG
0066 UEND=. /END FOR THIS BG
4063 RELOC /END OF RELATIVE DEFINITIONS >
/M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 165
IFZERO BGMAX-3&4000 < /THE THIRD BG:
0000 BG3, RELOC 0 /ALL FOLLOWING SYMBOLS ARE RELATIVE
010000* 5400 USTAT, INACTIVE+BGSTOP+ONDISK /STATUS FOR BACKGROUND SCHEDULER
010001* 0000 UMQ, 0 /USERS MEMORY QUOTIENT REGISTER
010002* 0000 USC, 0 /MSS.SSS.FFF.XXXA/B MODE,
/STEPCOUNTER AND LOCKED FIELD
010003* 7201 UPC, 7201 /USERS CURRENT PROGRAM COUNTER
010004* 0100 UFLDS, 100 /LGX.XXU.III.FFF: LINK, GREATER-THAN,
/USER MODE, VIRTUAL INSTRUCTION & DATAFIELD
010005* 0000 UAC, 0 /USERS CURRENT ACCUMULATOR
010006* 0000 UINST, 0 /LAST EMULATED INSTRUCTION
010007* 0000 USW, 0 /USERS SWITCH REGISTER (VIRTUAL)
010010* 0000 UTEMP, 0 /SCRATCH LOCATION #1
010011* 0000 UTEM2, 0 /SCRATCH LOCATION #2
010012* 0000 UDTV, ZBLOCK 3 /TRANSFER VECTOR
010015* 0000 UASEM, ZBLOCK ASEMMX /EMULATORS PLUG THEIR NAMES HERE
010025* 0003 UBUFIN, 3 /COUNTER OF INPUT BUFFER
010026* 3101 BG3IN+1 /READ POINTER
010027* 3104 BG3IN+1+3 /WRITE POINTER
010030* 0000 UBUFOUT,0 /COUNTER OF OUTPUT BUFFER
010031* 3121 BG3OUT+1 /READ POINTER
010032* 3121 BG3OUT+1 /WRITE POINTER
010033* 4144 UWRTR, KHOBG3+4 /TCBP OF OUTPUT WRITER
010034* 4154 UCUR, EMBG3+4 /TCBP OF EMULATOR
IFDEF USESY3 <
UCHNL0, USYS3 /DRIVER FOR USERS' SYS: >
IFNDEF USESY3 <
010035* 0713 UCHNL0, "D^100+"K&3777 /DRIVER FOR USERS' SYS: >
010036* 4533 UNUMB, 4533 /FILE STRUCTURED, DEVICE TYPE 53, UNIT #
010037* 2631 "S^100+"Y&3777 /ENTRY FOR DSK0:
010040* 6500 6500 /READ ONLY, OS/8 SYSTEM, UNIT 0
010041* 0000 ZBLOCK 4 /CHANNEL 2-3
010045* 0000 UECHO, 0 /ECHO FLAG, 4000=NO ECHO
010046* 0000 UFLD0, ZBLOCK BGCORE /TABLE OF REAL FIELDS
010056* 0000 UCHAR, 0 /THE CURRENT INPUT CHARACTER
IFZERO TTYMAX-3&4000 <
UKB, K1TCBP+40 /TCBP OF INPUT TASK
UTTY, T1TCBP+40 /TCBP OF OUTPUT HANDLER >
IFNZRO TTYMAX-3&4000 <
010057* 0000 UKB, 0 /DETACHED BACKBGOUND
010060* 0000 UTTY, 0 /DETACHED BACKGROUND >
010061* 0000 UCOUNT, 0 /COUNTER FOR "BS"
010062* 0036 USLOT, MAXSLOT+3 /WAIT-FOR-BG-IN-CORE SLOT
010063* 0000 UACCNT, ZBLOCK 2 /LOWORDER, HIGHORDER CPU USAGE
/IN UNITS OF DGNTICK
IFDEF FPP <
UFPST, 0 /FPP STATUS
UAPTH, 0 /HIGH 3 BITS OF APT ADDRESS
UAPTL, 0 /LOW 12 BITS OF APT ADDRES >
UNEXT,
010065* 3707 IFZERO BGMAX-3 <BG1> /POINTER TO FIRST BG
IFNZRO BGMAX-3 <BG4> /POINTER TO NEXT BG
0066 UEND=. /END FOR THIS BG
/M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 165-1
4151 RELOC /END OF RELATIVE DEFINITIONS >
/M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 166
IFZERO BGMAX-4&4000 < /THE FOURTH BG:
BG4, RELOC 0 /ALL FOLLOWING SYMBOLS ARE RELATIVE
USTAT, INACTIVE+BGSTOP+ONDISK /STATUS FOR BACKGROUND SCHEDULER
UMQ, 0 /USERS MEMORY QUOTIENT REGISTER
USC, 0 /MSS.SSS.FFF.XXXA/B MODE,
/STEPCOUNTER AND LOCKED FIELD
UPC, 7201 /USERS CURRENT PROGRAM COUNTER
UFLDS, 100 /LGX.XXU.III.FFF: LINK, GREATER-THAN,
/USER MODE, VIRTUAL INSTRUCTION & DATAFIELD
UAC, 0 /USERS CURRENT ACCUMULATOR
UINST, 0 /LAST EMULATED INSTRUCTION
USW, 0 /USERS SWITCH REGISTER (VIRTUAL)
UTEMP, 0 /SCRATCH LOCATION #1
UTEM2, 0 /SCRATCH LOCATION #2
UDTV, ZBLOCK 3 /TRANSFER VECTOR
UASEM, ZBLOCK ASEMMX /EMULATORS PLUG THEIR NAMES HERE
UBUFIN, 3 /COUNTER OF INPUT BUFFER
BG4IN+1 /READ POINTER
BG4IN+1+3 /WRITE POINTER
UBUFOUT,0 /COUNTER OF OUTPUT BUFFER
BG4OUT+1 /READ POINTER
BG4OUT+1 /WRITE POINTER
UWRTR, KHOBG4+4 /TCBP OF OUTPUT WRITER
UCUR, EMBG4+4 /TCBP OF EMULATOR
IFDEF USESY4 <
UCHNL0, USYS4 /DRIVER FOR USERS' SYS: >
IFNDEF USESY4 <
UCHNL0, "D^100+"K&3777 /DRIVER FOR USERS' SYS: >
UNUMB, 4544 /FILE STRUCTURED, DEVICE TYPE 54, UNIT #
"S^100+"Y&3777 /ENTRY FOR DSK0:
6500 /READ ONLY, OS/8 SYSTEM, UNIT 0
ZBLOCK 4 /CHANNEL 2-3
UECHO, 0 /ECHO FLAG, 4000=NO ECHO
UFLD0, ZBLOCK BGCORE /TABLE OF REAL FIELDS
UCHAR, 0 /THE CURRENT INPUT CHARACTER
IFZERO TTYMAX-4&4000 <
UKB, K1TCBP+60 /TCBP OF INPUT TASK
UTTY, T1TCBP+60 /TCBP OF OUTPUT HANDLER >
IFNZRO TTYMAX-4&4000 <
UKB, 0 /DETACHED BACKBGOUND
UTTY, 0 /DETACHED BACKGROUND >
UCOUNT, 0 /COUNTER FOR "BS"
USLOT, MAXSLOT+4 /WAIT-FOR-BG-IN-CORE SLOT
UACCNT, ZBLOCK 2 /LOWORDER, HIGHORDER CPU USAGE
/IN UNITS OF DGNTICK
IFDEF FPP <
UFPST, 0 /FPP STATUS
UAPTH, 0 /HIGH 3 BITS OF APT ADDRESS
UAPTL, 0 /LOW 12 BITS OF APT ADDRES >
UNEXT,
IFZERO BGMAX-4 <BG1> /POINTER TO FIRST BG
IFNZRO BGMAX-4 <BG5> /POINTER TO NEXT BG
UEND=. /END FOR THIS BG
/M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 166-1
RELOC /END OF RELATIVE DEFINITIONS >
/M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 167
IFZERO BGMAX-5&4000 < /THE FIFTH BG:
BG5, RELOC 0 /ALL FOLLOWING SYMBOLS ARE RELATIVE
USTAT, INACTIVE+BGSTOP+ONDISK /STATUS FOR BACKGROUND SCHEDULER
UMQ, 0 /USERS MEMORY QUOTIENT REGISTER
USC, 0 /MSS.SSS.FFF.XXXA/B MODE,
/STEPCOUNTER AND LOCKED FIELD
UPC, 7201 /USERS CURRENT PROGRAM COUNTER
UFLDS, 100 /LGX.XXU.III.FFF: LINK, GREATER-THAN,
/USER MODE, VIRTUAL INSTRUCTION & DATAFIELD
UAC, 0 /USERS CURRENT ACCUMULATOR
UINST, 0 /LAST EMULATED INSTRUCTION
USW, 0 /USERS SWITCH REGISTER (VIRTUAL)
UTEMP, 0 /SCRATCH LOCATION #1
UTEM2, 0 /SCRATCH LOCATION #2
UDTV, ZBLOCK 3 /TRANSFER VECTOR
UASEM, ZBLOCK ASEMMX /EMULATORS PLUG THEIR NAMES HERE
UBUFIN, 3 /COUNTER OF INPUT BUFFER
BG5IN+1 /READ POINTER
BG5IN+1+3 /WRITE POINTER
UBUFOUT,0 /COUNTER OF OUTPUT BUFFER
BG5OUT+1 /READ POINTER
BG5OUT+1 /WRITE POINTER
UWRTR, KHOBG5+4 /TCBP OF OUTPUT WRITER
UCUR, EMBG5+4 /TCBP OF EMULATOR
IFDEF USESY5 <
UCHNL0, USYS5 /DRIVER FOR USERS' SYS: >
IFNDEF USESY5 <
UCHNL0, "D^100+"K&3777 /DRIVER FOR USERS' SYS: >
UNUMB, 4555 /FILE STRUCTURED, DEVICE TYPE 55, UNIT #
"S^100+"Y&3777 /ENTRY FOR DSK0:
6500 /READ ONLY, OS/8 SYSTEM, UNIT 0
ZBLOCK 4 /CHANNEL 2-3
UECHO, 0 /ECHO FLAG, 4000=NO ECHO
UFLD0, ZBLOCK BGCORE /TABLE OF REAL FIELDS
UCHAR, 0 /THE CURRENT INPUT CHARACTER
IFZERO TTYMAX-5&4000 <
UKB, K1TCBP+100 /TCBP OF INPUT TASK
UTTY, T1TCBP+100 /TCBP OF OUTPUT HANDLER >
IFNZRO TTYMAX-5&4000 <
UKB, 0 /DETACHED BACKBGOUND
UTTY, 0 /DETACHED BACKGROUND >
UCOUNT, 0 /COUNTER FOR "BS"
USLOT, MAXSLOT+5 /WAIT-FOR-BG-IN-CORE SLOT
UACCNT, ZBLOCK 2 /LOWORDER, HIGHORDER CPU USAGE
/IN UNITS OF DGNTICK
IFDEF FPP <
UFPST, 0 /FPP STATUS
UAPTH, 0 /HIGH 3 BITS OF APT ADDRESS
UAPTL, 0 /LOW 12 BITS OF APT ADDRES >
UNEXT,
IFZERO BGMAX-5 <BG1> /POINTER TO FIRST BG
IFNZRO BGMAX-5 <BG6> /POINTER TO NEXT BG
UEND=. /END FOR THIS BG
/M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 167-1
RELOC /END OF RELATIVE DEFINITIONS >
/M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 168
IFZERO BGMAX-6&4000 < /THE SIXTH BG:
BG6, RELOC 0 /ALL FOLLOWING SYMBOLS ARE RELATIVE
USTAT, INACTIVE+BGSTOP+ONDISK /STATUS FOR BACKGROUND SCHEDULER
UMQ, 0 /USERS MEMORY QUOTIENT REGISTER
USC, 0 /MSS.SSS.FFF.XXXA/B MODE,
/STEPCOUNTER AND LOCKED FIELD
UPC, 7201 /USERS CURRENT PROGRAM COUNTER
UFLDS, 100 /LGX.XXU.III.FFF: LINK, GREATER-THAN,
/USER MODE, VIRTUAL INSTRUCTION & DATAFIELD
UAC, 0 /USERS CURRENT ACCUMULATOR
UINST, 0 /LAST EMULATED INSTRUCTION
USW, 0 /USERS SWITCH REGISTER (VIRTUAL)
UTEMP, 0 /SCRATCH LOCATION #1
UTEM2, 0 /SCRATCH LOCATION #2
UDTV, ZBLOCK 3 /TRANSFER VECTOR
UASEM, ZBLOCK ASEMMX /EMULATORS PLUG THEIR NAMES HERE
UBUFIN, 3 /COUNTER OF INPUT BUFFER
BG6IN+1 /READ POINTER
BG6IN+1+3 /WRITE POINTER
UBUFOUT,0 /COUNTER OF OUTPUT BUFFER
BG6OUT+1 /READ POINTER
BG6OUT+1 /WRITE POINTER
UWRTR, KHOBG6+4 /TCBP OF OUTPUT WRITER
UCUR, EMBG6+4 /TCBP OF EMULATOR
IFDEF USESY6 <
UCHNL0, USYS6 /DRIVER FOR USERS' SYS: >
IFNDEF USESY6 <
UCHNL0, "D^100+"K&3777 /DRIVER FOR USERS' SYS: >
UNUMB, 4566 /FILE STRUCTURED, DEVICE TYPE 56, UNIT #
"S^100+"Y&3777 /ENTRY FOR DSK0:
6500 /READ ONLY, OS/8 SYSTEM, UNIT 0
ZBLOCK 4 /CHANNEL 2-3
UECHO, 0 /ECHO FLAG, 4000=NO ECHO
UFLD0, ZBLOCK BGCORE /TABLE OF REAL FIELDS
UCHAR, 0 /THE CURRENT INPUT CHARACTER
IFZERO TTYMAX-6&4000 <
UKB, K1TCBP+120 /TCBP OF INPUT TASK
UTTY, T1TCBP+120 /TCBP OF OUTPUT HANDLER >
IFNZRO TTYMAX-6&4000 <
UKB, 0 /DETACHED BACKBGOUND
UTTY, 0 /DETACHED BACKGROUND >
UCOUNT, 0 /COUNTER FOR "BS"
USLOT, MAXSLOT+6 /WAIT-FOR-BG-IN-CORE SLOT
UACCNT, ZBLOCK 2 /LOWORDER, HIGHORDER CPU USAGE
/IN UNITS OF DGNTICK
IFDEF FPP <
UFPST, 0 /FPP STATUS
UAPTH, 0 /HIGH 3 BITS OF APT ADDRESS
UAPTL, 0 /LOW 12 BITS OF APT ADDRES >
UNEXT,
IFZERO BGMAX-6 <BG1> /POINTER TO FIRST BG
IFNZRO BGMAX-6 <BG7> /POINTER TO NEXT BG
UEND=. /END FOR THIS BG
/M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 168-1
RELOC /END OF RELATIVE DEFINITIONS >
/M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 169
IFZERO BGMAX-7&4000 < /THE SEVENTH BG:
BG7, RELOC 0 /ALL FOLLOWING SYMBOLS ARE RELATIVE
USTAT, INACTIVE+BGSTOP+ONDISK /STATUS FOR BACKGROUND SCHEDULER
UMQ, 0 /USERS MEMORY QUOTIENT REGISTER
USC, 0 /MSS.SSS.FFF.XXXA/B MODE,
/STEPCOUNTER AND LOCKED FIELD
UPC, 7201 /USERS CURRENT PROGRAM COUNTER
UFLDS, 100 /LGX.XXU.III.FFF: LINK, GREATER-THAN,
/USER MODE, VIRTUAL INSTRUCTION & DATAFIELD
UAC, 0 /USERS CURRENT ACCUMULATOR
UINST, 0 /LAST EMULATED INSTRUCTION
USW, 0 /USERS SWITCH REGISTER (VIRTUAL)
UTEMP, 0 /SCRATCH LOCATION #1
UTEM2, 0 /SCRATCH LOCATION #2
UDTV, ZBLOCK 3 /TRANSFER VECTOR
UASEM, ZBLOCK ASEMMX /EMULATORS PLUG THEIR NAMES HERE
UBUFIN, 3 /COUNTER OF INPUT BUFFER
BG7IN+1 /READ POINTER
BG7IN+1+3 /WRITE POINTER
UBUFOUT,0 /COUNTER OF OUTPUT BUFFER
BG7OUT+1 /READ POINTER
BG7OUT+1 /WRITE POINTER
UWRTR, KHOBG7+4 /TCBP OF OUTPUT WRITER
UCUR, EMBG7+4 /TCBP OF EMULATOR
IFDEF USESY7 <
UCHNL0, USYS7 /DRIVER FOR USERS' SYS: >
IFNDEF USESY7 <
UCHNL0, "D^100+"K&3777 /DRIVER FOR USERS' SYS: >
UNUMB, 4577 /FILE STRUCTURED, DEVICE TYPE 57, UNIT #
"S^100+"Y&3777 /ENTRY FOR DSK0:
6500 /READ ONLY, OS/8 SYSTEM, UNIT 0
ZBLOCK 4 /CHANNEL 2-3
UECHO, 0 /ECHO FLAG, 4000=NO ECHO
UFLD0, ZBLOCK BGCORE /TABLE OF REAL FIELDS
UCHAR, 0 /THE CURRENT INPUT CHARACTER
IFZERO TTYMAX-7&4000 <
UKB, K1TCBP+140 /TCBP OF INPUT TASK
UTTY, T1TCBP+140 /TCBP OF OUTPUT HANDLER >
IFNZRO TTYMAX-7&4000 <
UKB, 0 /DETACHED BACKBGOUND
UTTY, 0 /DETACHED BACKGROUND >
UCOUNT, 0 /COUNTER FOR "BS"
USLOT, MAXSLOT+7 /WAIT-FOR-BG-IN-CORE SLOT
UACCNT, ZBLOCK 2 /LOWORDER, HIGHORDER CPU USAGE
/IN UNITS OF DGNTICK
IFDEF FPP <
UFPST, 0 /FPP STATUS
UAPTH, 0 /HIGH 3 BITS OF APT ADDRESS
UAPTL, 0 /LOW 12 BITS OF APT ADDRES >
UNEXT, BG1 /NOTE! BG7 IS ALWAYS THE LAST ONE
UEND=. /END FOR THIS BG
RELOC /END OF RELATIVE DEFINITIONS >
/M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 169-1
/END OF BGMAX CONDITIONAL >
/M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 170
/END OF FIELD 1 DATA AREA.
4200 PAGE
4200 DOTF10=.
IFNZRO PASS1 <
ENDF10=DOTF10-1
ENDF20=DOTF20-1
ENDF30=DOTF30-1
ENDF40=DOTF40-1
ENDF50=DOTF50-1
ENDF60=DOTF60-1
ENDF70=DOTF70-1>
/M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 171
/M5.PA 9-SEP-80
/EQUATES:
7746 JSW=7746 /ADDRESS OF OS/8 JOB STATUS WORD
1000 NO=1000 /DON'T RESTART BIT IN JSW
7607 SYSHND=7607 /ENTRYPOINT OF SYSTEM HANDLER
7700 USR=7700 /USER SERVICE ROUTINE.
0001 FETCH=1 /FETCH HANDLER REQUEST CODE
0002 LOOKUP=2 /FILENAME LOOKUP REQUEST CODE
0003 ENTER=3 /ENTER NEW OUTPUT FILE
0004 CLOSE=4 /CLOSE PERMANENT FILE
0005 CD=5 /COMMAND DECODE
0010 USRIN=10 /CALL USR INTO CORE REQUEST CODE
0011 USROUT=11 /DISMISS USR REQUEST CODE
0012 INQUIRE=12 /GET DEVICE NUMBER REQUEST CODE
/M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 172
0003 FIELD BGFLD%10
0000 *0
030000 0000 TEMP, 0
030001 0000 TEMP1, 0
030002 0000 TEMP2, 0
030003 0000 TEMP3, 0
030004 0000 ZBLOCK 3 /ODT BREAKPOINT
030007 0000 TEMP4, 0
030010 0000 AUTO10, 0
030011 0000 AUTO11, 0
030012 0000 AUTO12, 0
030013 0000 AUTO13, 0
030014 0000 AUTO14, 0
030015 0000 AUTO15, 0
030016 0000 AUTO16, 0
030017 0000 AUTO17, 0
030020 0000 TEMP5, 0
030021 0000 TEMP6, 0
030022 0000 TEMP7, 0
030023 0000 ZNUM, 0
030024 0000 BINAC, 0
030025 0000 CHANGD, 0 /IF ZERO, CORE IMAGE MUST BE SAVED
030026 7777 CHAIND, -1 /CHAIN SWITCH
0200 *200
030200 7300 PWRUP, CLA CLL /
030201 1177 TAD [NO /SET NOT-RESTART BIT
030202 6201 CDF 0 //
030203 3576 DCA I [JSW //
030204 1175 TAD [GTF //
030205 3574 DCA I [200 //RESTORE SKIPCHAIN
030206 6231 CDF BGFLD /
030207 7301 AC0001 /ON SYS:
030210 6212 CIF 10
030211 4573 JMS I [7700 /DELETE THE OLD COPY OF MULTI8.SV
030212 0004 CLOSE /SOME INEXPERIENCED USERS GET
030213 0352 MULTI8 /VERY CONFUSED BY AN OLD DATE!!
030214 0000 0 /0 MEANS DELETE
030215 7200 CLA /SO WHAT?
030216 4572 JMS I [COPYZ /COPY PAGE ZERO IN FOREGROUND FIELDS
030217 4571 JMS I [SETNAM /ENTER PREASSEMBLED TASKS IN NAMLST
030220 4570 JMS I [LNKTCB /LINK THE FREE TASK CONTROL BLOCKS
030221 4567 JMS I [SAVE /SAVE THE COMPLETE IMAGE IN 'MULTI8.SV'
030222 5577 JMP I [STRT /AND START TASKBUILDING PHASE
/M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 173
030223 0000 SAVE, 0 /SAVE CORE IN 'MULTI8.SV'
030224 1025 TAD CHANGD
030225 7640 SZA CLA /NEED TO SAVE ?
030226 5623 JMP I SAVE /NO, NOTHING CHANGED
030227 2025 ISZ CHANGD /YES, RESET CHANGED FLAG
030230 1166 TAD [MULTI8
030231 3236 DCA STBLK
030232 7301 AC0001 /DEVICE IS SYS:
030233 6212 CIF 10 /
030234 4573 JMS I [7700 /LOOKUP THE FILE 'MULTI8.SV'
030235 0002 LOOKUP
030236 0352 STBLK, MULTI8
030237 0000 LNGTH, 0
030240 4314 JMS NEWSAV /CREATE THE SAVE FILE
030241 1237 TAD LNGTH /GET MINUS FILE LENGTH
030242 1342 TAD NEWLEN
030243 7740 SMA SZA CLA /LONG ENOUGH ?
030244 4314 JMS NEWSAV /TOO SHORT, MAKE A NEW SAVE FILE
030245 1236 TAD STBLK /GET STARTING BLOCK NUMBER
030246 3255 DCA STBLK1 /AND MOVE IT TO THE FIRST WRITE REQUEST
030247 1236 TAD STBLK
030250 3565 DCA I [OFSET /UPDATE OFFSET FOR TASKBUILDER
030251 6202 CIF 0 /WRITE THE CORE CONTROL BLOCK
030252 4564 JMS I [SYSHND /IN THE FIRST BLOCK OF THE FILE
030253 4230 4200+BGFLD
030254 0356 CCB
030255 0000 STBLK1, 0
030256 4563 ERR3, JMS I [ERROR /?WRITING SYS:?
030257 1162 TAD [CCBLST-1 /POINTER TO CORE PARAMETERS LIST
030260 3010 DCA AUTO10 /WE USE IT IN SAVING THE FILE TOO
030261 1255 TAD STBLK1 /SET BLOCK NUMBER
030262 7001 IAC /+1 FOR CCB
030263 3277 DCA STBLK2 /
030264 1356 TAD CCB /NUMBER OF SEGMENTS
030265 3000 DCA TEMP /IN COUNTER
030266 1410 SAVLOP, TAD I AUTO10 /GET CORE ADDRESS
030267 3276 DCA ADR /
030270 7330 AC4000 /SET WRITE-BIT
030271 1410 TAD I AUTO10 /
030272 3275 DCA FUN /SET FUNCTION WORD
030273 6202 CIF 0 /WRITE THIS SEGMENT
030274 4564 JMS I [SYSHND /
030275 0000 FUN, 0
030276 0000 ADR, 0
030277 0000 STBLK2, 0
030300 4563 ERR3A, JMS I [ERROR /?WRITING SYS:?
/M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 174
030301 1275 TAD FUN /UPDATE BLOCKNUMBER
030302 0161 AND [3700
030303 7002 BSW
030304 7111 IAC CLL RAR /ROUND UP TO # OF BLOCKS
030305 7450 SNA
030306 1160 TAD [20
030307 1277 TAD STBLK2
030310 3277 DCA STBLK2
030311 2000 ISZ TEMP /ALL SEGMENTS DONE ?
030312 5266 JMP SAVLOP /NO, CYCLE
030313 5623 JMP I SAVE /YES, RETURN
030314 0000 NEWSAV, 0
030315 1256 ERR23A, TAD ERR3
030316 3315 DCA ERR23A /ONCE ONLY !
030317 1166 TAD [MULTI8
030320 3325 DCA STBLK0 /SETUP POINTER TO FILENAME
030321 7301 AC0001
030322 6212 CIF 10
030323 4573 JMS I [7700 /ENTER NEW FILE
030324 0003 ENTER
030325 0352 STBLK0, MULTI8 /POINTER TO FILENAME
030326 0000 TENTLN, 0
030327 4563 ERR4, JMS I [ERROR /CAN'T CLOSE SAVE FILE
030330 1326 TAD TENTLN
030331 7100 CLL
030332 1342 TAD NEWLEN
030333 7630 SZL CLA /IS THIS HOLE LARGE ENOUGH ?
030334 4563 ERR4A, JMS I [ERROR /NO, NO ROOM FOR MULTI8.SV
030335 7301 AC0001
030336 6212 CIF 10
030337 4573 JMS I [7700
030340 0004 CLOSE
030341 0352 MULTI8
030342 0106 NEWLEN, SVLNGT
030343 4563 ERR4B, JMS I [ERROR
030344 1342 TAD NEWLEN
030345 7041 CIA
030346 3237 DCA LNGTH
030347 1325 TAD STBLK0
030350 3236 DCA STBLK
030351 5714 JMP I NEWSAV /RETURN TO MAIN SAVE ROUTINE
/M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 175
/DATA FOR SAVE ROUTINE:
MULTI8,
IFNDEF SINGL8 <
030352 1525 FILENAME MULTI8.SV / >
030353 1424
030354 1170
030355 2326
IFDEF SINGL8 <
FILENAME ZM16.SV / >
0000 O1=0
030356 7774 CCB, -FIELDS-1 /NUMBER OF SEGMENTS
030357 6233 CDF CIF BGFLD /STARTING FIELD
030360 1000 STRT /STARTING ADDRESS
030361 0000 0000 /JOB STATUS WORD
030362 0000 CCBLST, 0000 /SEGMENT FOR BGFLD
3230 O=ENDPWR%2+BGFLD;O1=O+100%200+O1;O
0015
030363 3230
IFZERO FIELDS-7&4000 <
0000 /SEGMENT FOR FIELD 6
O=ENDF60%2+60;O1=O+100%200+O1;O / >
IFZERO FIELDS-6&4000 <
0000 /SEGMENT FOR FIELD 5
O=ENDF50%2+50;O1=O+100%200+O1;O / >
IFZERO FIELDS-5&4000 <
0000 /SEGMENT FOR FIELD 4
O=ENDF40%2+40;O1=O+100%200+O1;O / >
IFZERO FIELDS-4&4000 <
0000 /SEGMENT FOR FIELD 3
O=ENDF30%2+30;O1=O+100%200+01;O / >
IFZERO FIELDS-3&4000 <
030364 0000 0000 /SEGMENT FOR FIELD 2
0120 O=ENDF20%2+20;O1=O+100%200+O1;O / >
0016
030365 0120
030366 0000 0000 /SEGMENT FOR FIELD 1
2110 O=ENDF10%2+10;O1=O+100%200+O1;O
0027
030367 2110
030370 0000 0000 /SEGMENT FOR FIELD 0
2300 O=ENDF00%2+00;O1=O+100%200+O1;O
0041
030371 2300
/THE REST OF THE FIRST BLOCK CONTAINS THE MAP OF THE FILE, E.G.
/WHERE ALL TASKS IN THE TASKLIBRARY ARE STORED:
030372 0042 DSKMAP, O1+1 /OFFSET TO FIRST TASK (OVER THE SAVE PART)
030373 0000 ZBLOCK CCB+400-. /GOOD FOR AT LEAST 235 BLOCKS
0755 ENDMAP=.-1
0016 O2=LOADPT-TCBTAB%10
0064 O3=MAXNAM-O2^2
0125 SVLNGT=O1+O3
IFNZRO BGMAX <
030756 0000 COPDSK, 0 /SETUP DSKMAP
/M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 175-1
030757 1157 TAD [XDSKTAB-1 /COPY XDSKTAB TO DSKTAB
030760 3017 DCA AUTO17
030761 1156 TAD [DSKTAB-1
030762 3016 DCA AUTO16
030763 1155 TAD [-40
030764 3001 DCA TEMP1
030765 1417 DSKCO1, TAD I AUTO17
030766 6211 CDF 10
030767 3416 DCA I AUTO16
030770 6231 CDF BGFLD
030771 2001 ISZ TEMP1
030772 5365 JMP DSKCO1
030773 5756 JMP I COPDSK /RETURN
7600 DSKTAB=7600 /V7 NOW IN CD AREA, 17600 >
1000 PAGE
/M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 176
/*****************************************************************
/******** T A S K B U I L D I N G P H A S E ****************
/*****************************************************************
/HERE STARTS THE TASKBUILDING PHASE:
031000 7240 STRT, ACM1 /IF R MULTI8, SET SWITCH TO -1
031001 3026 DCA CHAIND /IF CHAINED SET TO 0
031002 1177 TAD [NO /SET NON-RESTATABLE BIT
031003 6201 CDF 0 //IN OS8 JOB STATUS WORD
031004 3576 DCA I [JSW //
031005 6231 CDF BGFLD /
031006 1166 TAD [MULTI8
031007 3214 DCA OFSET /LOOKUP PRESENT SAVE FILE
031010 7301 AC0001 /SYS:=1
031011 6212 CIF 10
031012 4573 JMS I [7700 /CALL USR
031013 0002 LOOKUP
031014 0352 OFSET, MULTI8 /POINTER TO FILENAME/ STARTBLOCK OF FILE
031015 0000 ACTLEN, 0 /GET FILE LENGTH
031016 4563 ERR6, JMS I [ERROR /?MULTI8.SV NOT ON SYS:?
031017 2026 ISZ CHAIND /WAS IT A CHAIN ?
031020 5554 JMP I [GO /YES, START MULTI8 RIGHT AWAY
031021 6212 TKBNXT, CIF 10 /CALL COMMAND DECODER
031022 4573 JMS I [7700 /
031023 0005 CD
031024 0216 0216 /DEFAULT EXTENSION FOR TASKS IS 'BN'
031025 4553 JMS I [TSKBLD /TASKBUILD WHATEVER IS SPECIFIED
031026 6211 CDF 10 //LOOK AT ALTMODE FLAG
031027 1552 TAD I [7642 //
031030 6231 CDF BGFLD /
031031 7700 SMA CLA /FINISHED TASKBUILDING ?
031032 5221 JMP TKBNXT /NO, MORE EXPECTED
031033 4567 JMS I [SAVE /SAVE UPDATED IMAGE WITH NEW TASKS
031034 6211 CDF 10
031035 1551 TAD I [7644
031036 6231 CDF BGFLD
031037 0150 AND [2000
031040 7650 SNA CLA / /N OPTION SET ?
031041 5554 JMP I [GO /NO, GO START MULTI8
031042 6203 CDF CIF 0
031043 5547 JMP I [7600 /YES, BACK TO OS/8
/M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 177
/UPDATE BLOCK NUMBERS OF TASKS IN TASK CONTROL BLOCK TABLE:
031044 0000 SETBLK, 0 /ABSOLUTIZE BLOCKNUMBERS IN TCB'S
031045 6201 CDF 0 //
031046 1146 TAD [LOADPT+3 //START OF DISK RESIDENT TASKS
031047 3000 PWR1, DCA TEMP
031050 1400 TAD I TEMP //FETCH RELATIVE BLOCK NUMBER
031051 7450 SNA //IF ZERO, W'RE PAST THE LAST ONE
031052 5262 JMP PWR1A //DONE
031053 6231 CDF BGFLD /
031054 1214 TAD OFSET /ADD STARTBLOCK OF MULTI8.SV
031055 6201 CDF 0 //
031056 3400 DCA I TEMP //STORE UPDATED BLOCK NUMBER
031057 1000 TAD TEMP
031060 1145 TAD [10 //NEXT BLOCK # IS 10 WORDS FURTHER
031061 5247 JMP PWR1 //CYCLE
031062 6231 PWR1A, CDF BGFLD /
031063 5644 JMP I SETBLK /RETURN
031064 0000 LNKTCB, 0 /LINK THE FREE TCB'S
031065 6201 CDF 0 //
031066 1544 TAD I [FHEAD //ADDRESS OF FIRST FREE BLOCK
031067 3001 LNKTC1, DCA TEMP1 //
4561 O=MAXNAM^10+TCBTAB+200&7600-17
031070 1143 TAD [-O
031071 1001 TAD TEMP1
031072 7700 SMA CLA //END OF TCBTAB ?
031073 5301 JMP LNKTC2 //LAST TCB
031074 1001 TAD TEMP1 //
031075 1145 TAD [10 //COMPUTE ADDRESS OF NEXT BLOCK
031076 3401 DCA I TEMP1 //AND STORE IN LINK WORD
031077 1401 TAD I TEMP1
031100 5267 JMP LNKTC1 //NO, CYCLE
031101 3401 LNKTC2, DCA I TEMP1 //WHICH GETS A ZERO LINK
031102 6231 CDF BGFLD /
031103 5664 JMP I LNKTCB /RETURN
/M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 178
/LOOKUP THE SWAP-FILE 'SWPFIL.M8'
IFNZRO BGMAX <
031104 0000 SETSWP, 0 /SETUP THE SWAPFILE
031105 7301 AC0001
031106 6212 CIF 10
031107 4573 JMS I [USR /LOOKUP 'SWPFIL.M8' ON SYS:
031110 0002 LOOKUP
031111 2227 SWBLOK, SWPFIL /THIS GETS THE STARTING BLOCK #
031112 0000 SWPLEN, 0 /THIS GETS MINUS THE LENGTH
031113 5331 JMP NEWSWP /NO SWAPFILE YET
031114 1311 TAD SWBLOK
031115 0142 AND [TRACK-1 /COMPUTE NUMBER OF EXTRA BLOCKS
031116 1312 TAD SWPLEN /CHECK IF SWAPFILE LONG ENOUGH
IFNDEF SINGL8 <
031117 1141 TAD [BGCORE^BGMAX^20 >
IFDEF SINGL8 <
TAD [BGCORE^BGMAX-BGFLDS+1^20 >
031120 7740 SMA SZA CLA
031121 5331 JMP NEWSWP /MUST MAKE A LONGER SWAPFILE
031122 1311 SWAP1, TAD SWBLOK /PUT BEGIN OF SWPFIL.M8 IN
031123 1142 TAD [TRACK-1
031124 0140 AND [-TRACK
031125 6211 SETSW1, CDF 10 //
031126 3537 DCA I [BSTAB //FIRST LOC OF BSTAB
031127 6231 CDF BGFLD /
031130 5704 JMP I SETSWP /RETURN
/M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 179
031131 7301 NEWSWP, AC0001 /FIRST DELETE THE OLD SWPFIL
031132 6212 CIF 10 /
031133 4573 JMS I [USR /
031134 0004 CLOSE /
031135 2227 SWPFIL /POINTER TO FILE NAME
031136 0000 0 /LENGTH IS ZERO: DELETE FILE
031137 7000 NOP /MAYBE IT ISN'T THERE AT ALL
031140 7301 AC0001 /CREATE A NEW SWPFIL.M8
031141 6212 CIF 10 /
031142 4573 JMS I [USR /
031143 0003 ENTER /ENTER THE NEW FILE
031144 2227 SWPFIL /POINTER TO FILENAME
031145 0000 NEWLNG, 0 /GETS MAXIMUM LENGTH
031146 4563 ERR5, JMS I [ERROR /?CAN'T ENTER SWPFIL.M8?
031147 1344 TAD NEWLNG-1 /GET STARTING BLOCK
031150 7041 CIA /COMPUTE EXTRA BLOCKS TO ALLIGN WITH DISK
031151 0142 AND [TRACK-1 /COMPUTE NUMBER OF EXTRA BLOCKS
IFNDEF SINGL8 <
031152 1141 TAD [BGCORE^BGMAX^20 >
IFDEF SINGL8 <
TAD [BGCORE^BGMAX-BGFLDS+1^20 >
031153 3366 DCA CLNGTH /AND STORE IN CLOSE REQUEST
031154 7120 STL /
031155 1366 TAD CLNGTH /SEE IF THERE IS ENOUGH ROOM
031156 1345 TAD NEWLNG
031157 7660 SNL SZA CLA /ENOUGH ?
031160 4563 ERR5B, JMS I [ERROR /?NO ROOM FOR SWPFIL.M8?
031161 7301 AC0001
031162 6212 CIF 10 /NOW CLOSE THE FILE
031163 4573 JMS I [USR /
031164 0004 CLOSE
031165 2227 SWPFIL
031166 0000 CLNGTH, 0
031167 4563 ERR5A, JMS I [ERROR /?CAN'T CLOSE SWPFIL.M8?
031170 1344 TAD NEWLNG-1 /GET STARTING BLOCK
031171 3311 DCA SWBLOK
031172 1366 TAD CLNGTH
031173 3312 DCA SWPLEN
031174 5322 JMP SWAP1 /CARRY ON >
1200 PAGE
/M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 180
IFNZRO BGMAX <
031200 2625 PTEMP1, FAKHND
031201 4372 PTEMP2, FAKSYS
031202 7644 PTEMP3, -FAKLEN
031203 3062 PTEMP4, BOBOOT
031204 3563 PTEMP5, BOOBUF
031205 7340 PTEMP6, -BOBOEND
031206 7752 PTEMP7, BOBOEND-447-17
031207 2761 PTEMP8, DEVLST
031210 7623 PTEMP9, FASSGN
031211 4410 PTEMP0, FASSGN+2-SYSHND+FAKSYS
031212 1712 PRBOOT, RBOOT
031213 0000 SETFAK, 0 /ROUTINE TO SETUP FAKEHANDLER STUFF
031214 4612 JMS I PRBOOT /READ BOOTSTRAP FROM OS8 DEV
031215 6212 CIF 10
031216 4573 JMS I [USR
031217 0010 USRIN
/MOVE FAKEHANDLER OVER SYSTEM-HANDLER
031220 1600 PWR4, TAD I PTEMP1
031221 3601 DCA I PTEMP2
031222 2200 ISZ PTEMP1
031223 2201 ISZ PTEMP2
031224 2202 ISZ PTEMP3 /DONE ?
031225 5220 JMP PWR4 /NO, CYCLE
031226 6201 CDF 0
031227 1536 TAD I [7777 /GET DATE EXTENSION BITS
031230 6231 CDF BGFLD
031231 0135 AND [4707
IFNDEF SINGL8 <
031232 1134 TAD [BGFLDS-1^10+1000 /RTS8-BIT & SOFTWARE CORE SIZE >
IFDEF SINGL8 <
TAD [BGCORE-1^10+1000 /RTS8-BIT & SOFTWARE CORE SIZE >
031233 3533 DCA I [BGCORW /CORE-SIZE SET INITIALLY AT #FLDS-FGRND
/COPY SYSTEM BOOTSTRAP
031234 1603 PWR4A, TAD I PTEMP4
031235 3604 DCA I PTEMP5
031236 2203 ISZ PTEMP4
031237 2204 ISZ PTEMP5
031240 2205 ISZ PTEMP6
031241 5234 JMP PWR4A
/CLEAR DEVICE RESIDENCY TABLE
031242 3604 DCA I PTEMP5
031243 2204 ISZ PTEMP5
031244 2206 ISZ PTEMP7
031245 5242 JMP .-3
/M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 181
/PUT FAKEHANDLER ENTRY POINTS IN DEVICE RESIDENCY TABLE
031246 1164 TAD [SYSHND
031247 3532 DCA I [DVRSTB /ENTRYPOINT SYS:
031250 1164 TAD [SYSHND
031251 3531 DCA I [DVRSTB+1 /ENTRYPOINT DSK:
031252 5315 JMP PWR5B
031253 3263 PWR5, DCA DEVNAM
031254 2207 ISZ PTEMP8
031255 1607 TAD I PTEMP8
031256 3264 DCA DEVNAM+1 /SECOND WORD OF DEVICE NAME
031257 2207 ISZ PTEMP8 /PTEMP8 POINTS TO DEVICE TYPE
031260 6212 CIF 10
031261 4574 JMS I [200
031262 0012 INQUIRE /ASK USR WHAT INTERNAL DEVICE # IT HAS
031263 0000 DEVNAM, ZBLOCK 3 /GETS DEVICE NAME
031266 5313 JMP PWR5A /DEVICE DOES NOT EXIST, THAT'S
/A PITY FOR HIM
031267 1264 TAD DEVNAM+1 /THIS IS THE INTERNAL DEV NUMBER NOW
031270 1130 TAD [DVRSTB-1 /INDEX IN DEVICE RESIDENCY TABLE
/(THE ONE THAT IS IN THE BOOTBUFFER)
031271 3002 DCA TEMP2
031272 1210 TAD PTEMP9 /GET NEXT ENTRYPOINT IN FAKEHANDLER
031273 3402 DCA I TEMP2 /AND DROP IN DEVICE RESIDENCY TABLE.
/SO OS/8 WILL THINK THE HANDLER IS
031274 1264 TAD DEVNAM+1 /CORESIDENT WITH SYS:
031275 1127 TAD [DVTYPT-1
031276 3002 DCA TEMP2
031277 1607 TAD I PTEMP8
031300 3402 DCA I TEMP2 /SET CORRECT DEVICE TYPE
031301 2207 ISZ PTEMP8 /POINTS TO FAKEHANDLER CODE NUMBER
031302 1607 TAD I PTEMP8 /GET CODE NUMBER
031303 3611 DCA I PTEMP0 /AND STORE IN FAKEHANDLER
031304 7325 AC0003 /ADVANCE POINTERS
031305 1210 TAD PTEMP9
031306 3210 DCA PTEMP9
031307 7325 AC0003
031310 1211 TAD PTEMP0
031311 3211 DCA PTEMP0
031312 7410 SKP
031313 2207 PWR5A, ISZ PTEMP8
031314 2207 ISZ PTEMP8
031315 1607 PWR5B, TAD I PTEMP8
031316 7440 SZA /DONE ?
031317 5253 JMP PWR5 /NO, CYCLE
/M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 182
031320 6212 CIF 10
031321 4574 JMS I [200
031322 0011 USROUT /DISMISS USR
031323 6202 CIF 0
031324 4564 JMS I [SYSHND
031325 4430 4400+BGFLD /WRITE THE FAKED BOOTBLOK IN BLOCK 40
031326 3563 BOOBUF
031327 0040 40 /OS/8 SCRATCH BLOCK
031330 4563 ERR8, JMS I [ERROR /?WRITING BOOBLK.M8?
031331 7200 CLA /YES
031332 5613 JMP I SETFAK /RETURN
1400 PAGE / >
/M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 183
/NOW WE SETUP THE FOREGROUND PAGE 0'S
031400 0000 COPYZ, 0 /SETUP FOREGROUND FIELDS PAGE ZERO
031401 1126 TAD [-FIELDS+1
031402 3001 DCA TEMP1 /COUNTER
031403 1125 PWR8, TAD [-COMPNT
031404 3002 DCA TEMP2 /COUNTER
031405 3003 DCA TEMP3 /POINTER STARTS AT ZERO
031406 6201 PWR9, CDF 00
031407 1403 TAD I TEMP3 /GET A WORD FROM 00
031410 6211 PWR10, CDF 00+10
031411 3403 DCA I TEMP3 /PUT A WORD INTO ANOTHER FIELD
031412 2003 ISZ TEMP3 /BUMP THE POINTER
031413 2002 ISZ TEMP2 /200 DONE ?
031414 5206 JMP PWR9 /NO, CYCLE
031415 1210 TAD PWR10
031416 3524 DCA I [MYCDF
031417 7301 AC0001
031420 1210 TAD PWR10
031421 3523 DCA I [MYCIF
031422 7326 AC0002
031423 1210 TAD PWR10
031424 3522 DCA I [MYCDIF
031425 1210 TAD PWR10
031426 1145 TAD [10
031427 3210 DCA PWR10
031430 2001 ISZ TEMP1
031431 5203 JMP PWR8 /NEXT FIELD
031432 6231 CDF BGFLD
031433 5600 JMP I COPYZ /RETURN
/FILL IN CLRTAB WITH THE ORIGINAL CLEAR-IOT'S FROM THE SKIPCHAIN
031434 0000 COPCLR, 0 /SETUP CLRTAB
031435 6201 CDF 00
031436 1121 TAD [-INTDEV+1
031437 3022 DCA ZTEM2 /WE MAY USE THE ZTEM'S NOW!
031440 1120 TAD [CLRTAB-1
031441 3010 DCA AUTO10
031442 1117 TAD [SKP0-1+4
031443 3021 PWR12, DCA ZTEM1
031444 1421 TAD I ZTEM1
031445 3410 DCA I AUTO10
031446 1021 TAD ZTEM1
031447 1116 TAD [4
031450 2022 ISZ ZTEM2
031451 5243 JMP PWR12
031452 6231 CDF BGFLD
031453 7300 CLA CLL
031454 5634 JMP I COPCLR
/M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 184
IFNZRO BGMAX <
/CALL: JMS SETLEN
/ PROG NAME POINTER
/ BLOCK OFFSET
/ - TEST VALUE OF 1'ST WORD
/ ADDRESS OFFSET /MAY RETURN THRU
/ TABLE INCREMENT /THESE TWO
031455 0000 SETLEN, 0 /PATCH PROGRAM DEVICE LENGTH TABLE
031456 1655 TAD I SETLEN
031457 3265 DCA PRGBLK /SET NAME POINTER
031460 2255 ISZ SETLEN /NEXT ARG
031461 7301 AC0001 /PROG.SV IS ON SYS: USUALLY
031462 6212 CIF 10
031463 4777 JMS I (USR /LOOKUP PROG.SV
031464 0002 LOOKUP
031465 1234 PRGBLK, 1234
031466 0000 0 /(GETS -LENGTH OF PROG.SV)
031467 5343 JMP SETEX1 /SORRY, PROG NOT FOUND
031470 7307 AC0004 /PROG MUST BE 4 BLOCKS AT LEAST
031471 1266 TAD PRGBLK+1 /GET -LENGTH OF PROG.SV
031472 7700 SMA CLA /OK ?
031473 5343 JMP SETEX1 /NO, MAYBE IT'S A SHSAVE FILE
031474 1655 TAD I SETLEN /GET BLOCK OFFSET
031475 2255 ISZ SETLEN
031476 1265 TAD PRGBLK
031477 3306 DCA PRGB1
031500 1306 TAD PRGB1
031501 3340 DCA PRGB2
031502 6202 CIF 0
031503 4776 JMS I (SYSHND
031504 0230 200+BGFLD /READ 1 BLOCK IN THIS FIELD
031505 5600 PRGBUF, BUFST /USE INPUT BUFFER OF TSKBLD
031506 0000 PRGB1, 0 /GETS BLOCK NUMBER
031507 5344 JMP SETEX2 /SORRY, YOUR PROG IS POOH
031510 1655 TAD I SETLEN /GET TEST VALUE
031511 2255 ISZ SETLEN
031512 1705 TAD I PRGBUF /TEST FIRST VALUE OF BUFFER
031513 7640 SZA CLA /OK?
031514 5345 JMP SETEX /NO, BAD VERSION: FALL THRU ARGS
031515 1375 TAD (-10
031516 3306 DCA PRGB1 /FOR A COUNTER
031517 1374 TAD (LNGLST-1-BGNUMB+BOBOOT
031520 3010 DCA AUTO10 /RELOCATED IN BOOT BLOCK
031521 1655 TAD I SETLEN /GET ADDRESS OFFSET
031522 2255 ISZ SETLEN
031523 1373 TAD (BUFST
031524 3265 DCA PRGBLK
031525 1410 PRGLOP, TAD I AUTO10
031526 3665 DCA I PRGBLK
031527 1655 TAD I SETLEN /ADD INCREMENT
031530 1265 TAD PRGBLK
031531 3265 DCA PRGBLK
031532 2306 ISZ PRGB1
031533 5325 JMP PRGLOP /ENTER DEVICE LENGTH FOR DEV 50-57
/M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 184-1
031534 6202 CIF 0
031535 4776 JMS I (SYSHND /AND WRITE IT BACK TO PROG
031536 4230 4200+BGFLD
031537 5600 BUFST
031540 0000 PRGB2, 0
031541 5345 JMP SETEX /WRITE ERROR ? PITY
031542 5345 JMP SETEX
031543 2255 SETEX1, ISZ SETLEN
031544 2255 SETEX2, ISZ SETLEN
031545 7200 SETEX, CLA
031546 5655 JMP I SETLEN /RETURN >
031573 5600
031574 3062
031575 7770
031576 7607
031577 7700
1600 PAGE
/M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 185
GO,
031600 4777 IFNZRO BGMAX <JMS I (SETPIP /PATCH PIP DEVICE LENGTH TABLE >
031601 4776 JMS I (SETDMP /SETUP TO RUN MONDUM @ 7757
031602 4775 JMS I (PDPTST /CHECK THE AVAILABLE HARDWARE
IFNZRO BGMAX <
031603 4774 JMS I (SETSWP /CREATE SWAPFILE
031604 4773 JMS I (SETMEM /SETUP BSTAB FOR AVAILABLE MEMORY
031605 4772 JMS I (SETFAK /SETUP FAKE HANDLER
031606 4771 JMS I (COPDSK /SETUP DSKTAB >
031607 4770 JMS I (SETBLK /RELOCATE TASK BLOCK NUMBERS
031610 4767 JMS I (COPCLR /COPY CLEARIOTS IN CLRTAB
031611 4766 IFNZRO BGMAX <JMS I (SETTRP /SETUP THE MMU >
/NOW COMES A DIRTY PIECE OF CODE, THAT INITIALIZES ALL SORTS
/OF PERIPHERALS; MAYBE YOU HAVE TO EDIT THIS PART FOR YOUR
/SPECIALTIES !
031612 6007 CAF
031613 6046 TLS /THATS AN EASY ONE
IFDEF KL8E2 < 6016+KL8E2 / >
IFDEF KL8E3 < 6016+KL8E3 / >
IFDEF KL8E4 < 6016+KL8E4 / >
IFDEF KL8E5 < 6016+KL8E5 / >
IFDEF KL8E6 < 6016+KL8E6 / >
IFDEF KL8E7 < 6016+KL8E7 / >
031614 7200 CLA
IFDEF PP8E < 6024 / >
IFDEF LE8E <
IFZERO LE8E&1 < 6666 / >
031615 6574 IFNZRO LE8E&1 < 6574 / >>
IFDEF DR8EA1 <DR8EA1+6000 /DISABLE INTERRUPTS >
IFDEF DR8EA2 <DR8EA2+6000 /DISABLE INTERRUPTS >
IFDEF KL8A1 <
KL8A1+6010
TAD (KL8TAB
KL8A1+6012
AC0001
KL8A1+6000 / >
IFDEF KL8A2 <
KL8A2+6010
TAD (KL8TAB+10
KL8A2+6012
AC0001
KL8A2+6000 / >
/M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 186
/STARTING THE CLOCKS:
IFDEF RFCLOCK < 6601
TAD (RFINTS
6615 / >
IFDEF DK8EA < DK8EA+6001 / >
IFDEF DK8EB < DK8EB+6003 / >
IFDEF DK8EC < DK8EC+6001 / >
IFDEF DK8EP <
IFNDEF DK8EA < IFNDEF DK8EB < IFNDEF DK8EC < IFNDEF DKC8AA <
031616 1365 TAD (-1750
031617 6133 6003+DK8EP /AC IS NOT CLEARED, BUT ...
031620 1115 TAD [5410+1750
031621 6132 6002+DK8EP
031622 7200 CLA / >>>>>
IFDEF DKC8AA < AC0001
6135
CLA / >
IFDEF AX08 < 6364
ISZ .-1
JMP .-1
6362 /CLEAR ADC DONE FLAG
CLA /? >
IFDEF FPP <
AC2000 /SEE IF M&S FPP INSTALLED
6144 /SEMO DP AS TRIAL
SNA CLA /DID IT CLEAR AC ?
JMP .+5 /YES, OK
TAD (FPICL+2&177+5200 /NO, DO 'JMP FPICL+2' SO THAT
CDF 10
DCA I (FPST+2 /FPSTART DOES NOT SKIP, BUT 'JMP EMREDY'
CDF BGFLD / >
/M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 187
/NOW WE WILL SCHEDULE THE AUTO-START TASKS TO GET THE WORLD
/GOING. BECAUSE THIS POWERUP CODE IS NOT IN A
/FOREGROUND FIELD, WE CAN'T SIMULATE IT TO BE A TASK,
/THAT CALLS THE OTHER TASKS. THUS WE MUST STRING THEM
/IN THE SYSTEM'S QUEUE'S AND SET THEIR BACKLINK BUSY
/'BY HAND'.
031623 1114 TAD [TCBTAB+1 /LOOK FOR EACH TASKS' THREAD IN
031624 3001 DCA TEMP1 /HIS TCBP. IF NONZERO HE MUST BE STARTED
031625 1113 TAD [-MAXNAM
031626 3022 DCA TEMP7 /COUNTER
031627 6201 PWR14, CDF 0
031630 1401 TAD I TEMP1
031631 7650 SNA CLA /AUTO-START ?
031632 5256 JMP PWR15 /NO TRY NEXT ONE
031633 7240 ACM1
031634 1001 TAD TEMP1
031635 3002 DCA TEMP2
031636 7301 AC0001
031637 3402 DCA I TEMP2 /SET HIS BACKLINK TO 'RUNNED'
031640 1512 TAD I [MTAIL /PUT HIM ON THE MAINQUEUE
031641 3002 DCA TEMP2
031642 1001 TAD TEMP1
031643 3402 DCA I TEMP2
031644 1001 TAD TEMP1
031645 3512 DCA I [MTAIL
031646 3401 DCA I TEMP1
031647 2001 ISZ TEMP1
031650 1001 TAD TEMP1
031651 1111 TAD [5
031652 3002 DCA TEMP2 /ADDRESS OF PC
031653 1401 TAD I TEMP1 /GET HIS START ADDRESS
031654 3402 DCA I TEMP2 /AND DROP IT INTO HIS PC
031655 7240 ACM1
031656 1001 PWR15, TAD TEMP1 /GET POINTER AND
031657 1145 TAD [10
031660 3001 DCA TEMP1 /ADVANCE TO NEXT THREAD
031661 2022 ISZ TEMP7 /ALL TASKS DONE ?
031662 5227 JMP PWR14 /NO
031663 6203 CDF CIF 00
031664 5510 JMP I [DISPATCH /...............
/M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 188
IFNZRO BGMAX <
031665 0000 SETTRP, 0 /SETUP THE TRAP/UNTRAP RAM
031666 1173 TAD [-100
031667 3021 DCA ZTEM1
031670 1107 TAD [6000
031671 3022 DCA ZTEM2
031672 1022 TAD ZTEM2
031673 6235 6235 /LOAD TRAP REGISTER, CLA
031674 1022 TAD ZTEM2
031675 1145 TAD [10
031676 2021 ISZ ZTEM1
031677 5271 JMP .-6
031700 7200 CLA
031701 1106 TAD [TRPTAB-1
031702 3010 DCA AUTO10
031703 1410 TAD I AUTO10
031704 7450 SNA
031705 5310 JMP .+3
031706 6235 6235 /LOAD TRAP REGISTER, CLA
031707 5303 JMP .-4
031710 6265 6265 /ENABLE MEMORY MANAGEMENT !
031711 5665 JMP I SETTRP /RETURN
031712 0000 RBOOT, 0 /READ BOOTSTRAP
031713 6202 CIF 0
031714 4564 JMS I [SYSHND
031715 0230 200+BGFLD
031716 4163 BOOBUF+400
031717 0000 0
031720 5334 JMP ERR2
031721 6201 CDF 0
031722 7346 AC7775
031723 1736 TAD I P7612 /TEST IF 2 PAGE SYS HANDLER
031724 6231 CDF BGFLD
031725 7640 SZA CLA
031726 5712 JMP I RBOOT /IT WAS'NT
031727 6202 CIF 0
031730 4564 JMS I [SYSHND /IT WAS, READ 17600 PART
031731 0130 100+BGFLD
031732 4163 BOOBUF+400
031733 0066 66 /FROM BLOCK 66
031734 4563 ERR2, JMS I [ERROR /?READING BLOCK 0 (OR 66)?
031735 5712 JMP I RBOOT
031736 7612 P7612, 7612 >
031765 6030
031766 1665
031767 1434
031770 1044
031771 0756
031772 1213
031773 2035
031774 1104
031775 2065
031776 2000
/M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 188-1
031777 2200
2000 PAGE
/M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 189
032000 0000 SETDMP, 0 /SETUP .R MONDUM
032001 7301 AC0001
032002 6212 CIF 10
032003 4573 JMS I [USR /LOOKUP MONDUM.SV
032004 0002 LOOKUP
032005 2031 DMPBLK, MONDUM
032006 0000 0
032007 5600 JMP I SETDMP /MONDUM.SV NOT FOUND
032010 1105 TAD [CIF CDF BGFLD /RUN MONDUM IN FIRST BG FIELD
032011 6201 CDF 0
IFNZRO OS8-40 <
DCA I [7772 /STARTING FIELD >
IFZERO OS8-40 <
032012 3504 DCA I [7773 /STARTING FIELD V40 >
032013 1103 TAD [201 /MONDUM CHAIN ADDRESS
032014 3521 DCA I [7775
032015 1205 TAD DMPBLK
032016 7001 IAC
032017 3502 DCA I [7762 /BLOCK NUMBER
032020 3501 DCA I [7761
032021 1100 TAD [1000+BGFLD
032022 3540 DCA I [7760 /FUNCTION WORD [READ 10 PAGES)
032023 1077 TAD [5372
032024 3476 DCA I [7764
032025 1164 TAD [SYSHND
032026 3475 DCA I [7756
032027 6231 CDF BGFLD
032030 5600 JMP I SETDMP
032031 1517 MONDUM, FILENAME MONDUM.SV
032032 1604
032033 2515
032034 2326
/M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 190
IFNZRO BGMAX <
/ROUTINE TO ENABLE MEMORY FIELDS THAT SEEM TO BE PRESENT IN
/THIS MACHINE.
032035 0000 SETMEM, 0
032036 1074 TAD [-BGFLDS+1
032037 3000 DCA TEMP /COUNT FIELD BGFLD+1 ... 7
032040 1073 TAD [CDF BGFLD+10
032041 3244 DCA SETMM1 /CDF TO FIRST FIELD TO TEST
032042 1072 TAD [BSTAB+1+1
032043 3001 DCA TEMP1 /POINTER TO CORRESPONDING BSTAB ENTRY
032044 6201 SETMM1, CDF
032045 1245 TAD . /THERE IT IS AGAIN, LARY
032046 3544 DCA I [FHEAD /SOME PAGE ZERO LOCATION
032047 1544 TAD I [FHEAD
032050 6211 CDF 10
032051 7650 SNA CLA
032052 7240 ACM1 /LOCK BAD FIELDS
032053 7440 SZA
032054 3401 DCA I TEMP1 /
032055 2001 ISZ TEMP1
032056 1244 TAD SETMM1
032057 1145 TAD [10
032060 3244 DCA SETMM1 /NEXT FIELD
032061 2000 ISZ TEMP /ALL DONE ?
032062 5244 JMP SETMM1 /NO, CONTINUE
032063 6231 CDF BGFLD /YES, RETURN
032064 5635 JMP I SETMEM / >
032065 0000 PDPTST, 0 /A SUBROUTINE THAT TESTS IF WE ARE
032066 7300 CLA CLL /AT A REASONABLE KIND OF MACHINE.
/TEST IF WE WORK IN THE BACKGROUND. (6254 ONLY FOR MULTI8)
032067 6042 TCF
032070 6041 TSF
032071 7410 SKP
032072 4563 ERR0, JMS I [ERROR /?VIRTUIAL MACHINE?
IFNZRO BGMAX <
032073 6225 6225 /SKIP IF MEMORY MANAGEMENT INSTALLED
032074 4563 ERR7, JMS I [ERROR /*?MEMORY MANAGEMENT?* >
032075 5665 JMP I PDPTST
/M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 191
032076 0000 ERROR, 0 /GENERAL ERROR MESSAGE HANDLER
032077 7300 CLA CLL
032100 6231 CDF BGFLD /YOU NEVER KNOW
032101 1071 TAD [ERRLST-1
032102 3010 DCA AUTO10
032103 1276 TAD ERROR
032104 7041 CIA
032105 7001 IAC
032106 3276 DCA ERROR
032107 1410 ERRLOP, TAD I AUTO10
032110 7440 SZA /TEST FOR END OF LIST
032111 1276 TAD ERROR
032112 7650 SNA CLA
032113 5317 JMP ERRFND /THIS MUST BE THE ERROR
032114 2010 ISZ AUTO10
032115 2010 ISZ AUTO10
032116 5307 JMP ERRLOP
032117 1410 ERRFND, TAD I AUTO10
032120 3322 DCA .+2
032121 4327 JMS TXTOUT /PRINT THE MESSAGE
032122 0000 0
032123 4362 JMS CRLF
032124 1410 TAD I AUTO10
032125 3276 DCA ERROR
032126 5676 JMP I ERROR /GO TO CONTINUATION ADDRESS
032127 0000 TXTOUT, 0
032130 7300 CLA CLL
032131 6231 CDF BGFLD
032132 1727 TAD I TXTOUT /GET POINTER TO STRING
032133 3353 DCA TXTPNT
032134 2327 ISZ TXTOUT
032135 1753 TXT1, TAD I TXTPNT
032136 7420 SNL
032137 7002 BSW
032140 0070 AND [77
032141 7450 SNA /END OF STRING ?
032142 5727 JMP I TXTOUT /YES, QUIT
032143 1067 TAD [240
032144 0070 AND [77
032145 1067 TAD [240
032146 4354 JMS OUT
032147 7020 CML
032150 7420 SNL
032151 2353 ISZ TXTPNT
032152 5335 JMP TXT1
032153 0000 TXTPNT, 0
/M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 192
032154 0000 OUT, 0
032155 6046 TLS
032156 6041 TSF
032157 5356 JMP .-1
032160 7200 CLA
032161 5754 JMP I OUT
032162 0000 CRLF, 0
032163 1066 TAD [215
032164 4354 JMS OUT
032165 1065 TAD [212
032166 4354 JMS OUT
032167 5762 JMP I CRLF
2200 PAGE
/M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 193
IFNZRO BGMAX <
032200 0000 SETPIP, 0
032201 4616 JMS I PSETL /SET LENGHTS IN PIP
032202 2217 PIPNAM
032203 0004 4 /BLOCK 4
032204 7010 -770 /TEST
032205 0250 50+200 /ADDRESS
032206 0001 1 /INCREMENT
032207 4616 JMS I PSETL /SET LENGTHS IN RESORC
032210 2223 RESNAM
032211 0007 7
032212 5354 -2424
032213 0242 50^4+2
032214 0004 4
032215 5600 JMP I SETPIP
032216 1455 PSETL, SETLEN
032217 2011 PIPNAM, FILENAME PIP.SV
032220 2000
032221 0000
032222 2326
032223 2205 RESNAM, FILENAME RESORC.SV / >
032224 2317
032225 2203
032226 2326
032227 2327 SWPFIL, FILENAME SWPFIL.M8
032230 2006
032231 1114
032232 1570
032233 6203 E, CDF CIF 0
032234 5547 JMP I [7600
/M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 194
ERRLST, /LIST OF ERROR ADRESSES, STRING POINTERS AND CONTINUATION
/ADDRESSES:
032235 2072 ERR0;MSG0;E
032236 2353
032237 2233
IFNZRO BGMAX <
032240 1734 ERR2;MSG2;E >
032241 2364
032242 2233
032243 0256 ERR3;MSG3;E
032244 2401
032245 2233
032246 0300 ERR3A;MSG3;E
032247 2401
032250 2233
032251 0327 ERR4;MSG4;E
032252 2411
032253 2233
032254 0334 ERR4A;MSG4;E
032255 2411
032256 2233
IFNZRO BGMAX <
032257 1146 ERR5;MSG5;E
032260 2425
032261 2233
032262 1167 ERR5A;MSG5;E
032263 2425
032264 2233
032265 1160 ERR5B;MSG5;E >
032266 2425
032267 2233
032270 1016 ERR6;MSG6;E
032271 2441
032272 2233
IFNZRO BGMAX <
032273 2074 ERR7;MSG7;E
032274 2455
032275 2233
032276 1330 ERR8;MSG8;E >
032277 2401
032300 2233
032301 5421 ERR9;MSG9;E
032302 2467
032303 2233
032304 5440 ERR10;MSG10;E
032305 2503
032306 2233
032307 4652 ERR21;MSG21;E
032310 2512
032311 2233
032312 4657 ERR21A;MSG21;E
032313 2512
032314 2233
032315 4664 ERR21B;MSG21;E
032316 2512
/M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 194-1
032317 2233
032320 5250 ERR22;MSG22;E
032321 2523
032322 2233
032323 5132 ERR23;MSG23;E
032324 2532
032325 2233
032326 0315 ERR23A;MSG23;E
032327 2532
032330 2233
032331 4673 ERR25;MSG25;E
032332 2545
032333 2233
032334 4731 ERR26;MSG26;E
032335 2553
032336 2233
032337 4766 ERR27;MSG27;E
032340 2562
032341 2233
032342 4751 ERR28;MSG28;E
032343 2574
032344 2233
032345 5147 ERR29;MSG29;E
032346 2605
032347 2233
/END OF ERROR LIST:
032350 0000 0;MSG99;E
032351 2614
032352 2233
/M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 195
032353 7726 MSG0, TEXT *?VIRTUAL MACHINE?*
032354 1122
032355 2425
032356 0114
032357 4015
032360 0103
032361 1011
032362 1605
032363 7700
032364 7722 MSG2, TEXT *?READING BLOCK 0 (OR 66)?*
032365 0501
032366 0411
032367 1607
032370 4002
032371 1417
032372 0313
032373 4060
032374 4050
032375 1722
032376 4066
032377 6651
032400 7700
MSG8,
MSG11,
032401 7727 MSG3, TEXT *?WRITING SYS:?*
032402 2211
032403 2411
032404 1607
032405 4023
032406 3123
032407 7277
032410 0000
032411 7716 MSG4, TEXT *?NO ROOM FOR MULTI8.SV?*
032412 1740
032413 2217
032414 1715
032415 4006
032416 1722
032417 4015
032420 2514
032421 2411
032422 7056
032423 2326
032424 7700
032425 7716 MSG5, TEXT *?NO ROOM FOR SWPFIL.M8?*
032426 1740
032427 2217
032430 1715
032431 4006
032432 1722
032433 4023
032434 2720
032435 0611
032436 1456
032437 1570
/M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 195-1
032440 7700
MSG6,
IFNDEF SINGL8 <
032441 7715 TEXT *?MULTI8.SV NOT ON SYS:?* / >
032442 2514
032443 2411
032444 7056
032445 2326
032446 4016
032447 1724
032450 4017
032451 1640
032452 2331
032453 2372
032454 7700
IFDEF SINGL8 <
TEXT *?ZM16.SV NOT ON SYS:?* / >
032455 7715 MSG7, TEXT *?MEMORY MANAGEMENT?*
032456 0515
032457 1722
032460 3140
032461 1501
032462 1601
032463 0705
032464 1505
032465 1624
032466 7700
032467 7716 MSG9, TEXT *?NON-RESIDENT HANDLER?*
032470 1716
032471 5522
032472 0523
032473 1104
032474 0516
032475 2440
032476 1001
032477 1604
032500 1405
032501 2277
032502 0000
032503 7722 MSG10, TEXT *?READ ERROR?*
032504 0501
032505 0440
032506 0522
032507 2217
032510 2277
032511 0000
032512 7720 MSG21, TEXT *?PREAMBLE ERROR?*
032513 2205
032514 0115
032515 0214
032516 0540
032517 0522
032520 2217
032521 2277
/M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 195-2
032522 0000
032523 7702 MSG22, TEXT *?BAD BINARY?*
032524 0104
032525 4002
032526 1116
032527 0122
032530 3177
032531 0000
032532 7715 MSG23, TEXT *?MULTI8.SV TOO SHORT?*
032533 2514
032534 2411
032535 7056
032536 2326
032537 4024
032540 1717
032541 4023
032542 1017
032543 2224
032544 7700
032545 7703 MSG25, TEXT *?CHECKSUM?*
032546 1005
032547 0313
032550 2325
032551 1577
032552 0000
032553 7724 MSG26, TEXT *?TASK LENGTH?*
032554 0123
032555 1340
032556 1405
032557 1607
032560 2410
032561 7700
032562 7724 MSG27, TEXT *?TASK LIBRARY FULL?*
032563 0123
032564 1340
032565 1411
032566 0222
032567 0122
032570 3140
032571 0625
032572 1414
032573 7700
032574 7716 MSG28, TEXT *?NAME LIST FULL?*
032575 0115
032576 0540
032577 1411
032600 2324
032601 4006
032602 2514
032603 1477
032604 0000
032605 7727 MSG29, TEXT *?WRITE ERROR?*
032606 2211
032607 2405
032610 4005
/M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 195-3
032611 2222
032612 1722
032613 7700
032614 7725 MSG99, TEXT *?UNDEFINED ERROR?*
032615 1604
032616 0506
032617 1116
032620 0504
032621 4005
032622 2222
032623 1722
032624 7700
/M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 196
0015 FAKVER="M&77
IFNZRO BGMAX <
7607 FAKHND, RELOC SYSHND
037607* 0015 FSYS, FAKVER /ENTRY SYSTEM HANDLER
037610* 4270 JMS FGENIO
037611* 0000 00 /AC-CODE^10+UNIT BITS
037612* 0015 FAKVER
037613* 4270 JMS FGENIO
037614* 0001 01
037615* 0015 FAKVER
037616* 4270 JMS FGENIO
037617* 0002 02
037620* 0015 FAKVER
037621* 4270 JMS FGENIO
037622* 0003 03
037623* 0015 FASSGN, FAKVER
037624* 4270 JMS FGENIO
037625* 0000 0
037626* 0015 FAKVER
037627* 4270 JMS FGENIO
037630* 0000 0
037631* 0015 FAKVER
037632* 4270 JMS FGENIO
037633* 0000 0
037634* 0015 FAKVER
037635* 4270 JMS FGENIO
037636* 0000 0
037637* 0015 FAKVER
037640* 4270 JMS FGENIO
037641* 0000 0
037642* 0015 FAKVER
037643* 4270 JMS FGENIO
037644* 0000 0
037645* 0015 FAKVER
037646* 4270 JMS FGENIO
037647* 0000 0
037650* 0015 FAKVER
037651* 4270 JMS FGENIO
037652* 0000 0
037653* 0015 FAKVER
037654* 4270 JMS FGENIO
037655* 0000 0
037656* 0015 FAKVER
037657* 4270 JMS FGENIO
037660* 0000 0
037661* 0015 FAKVER
037662* 4270 JMS FGENIO
037663* 0000 0
037664* 0015 FAKVER
037665* 4270 JMS FGENIO
037666* 0000 0
/M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 197
M8BITS, IFNZRO .-7667 <XERROR> /SOME OPTION BITS THAT BG PROGRAMS MAY
/WANT TO KNOW.
0000 O=0
4000 IFDEF DKUSED <O=O+4000 /BIT 0 IS DKUSED >
IFDEF SINGL8 <O=O+2000 /BIT 1 SHOWS SINGL8 >
IFDEF UBITS <O=UBITS&77+O /FREE BITS FOR USER APPLICATIONS:
/EG. SPECIFY ONE OF SEVERAL INSTALLATIONS >
037667* 4000 O /THERE WE ARE !
037670* 0000 FGENIO, 0 /SETUP DTV,ISUE 6000
037671* 7344 ACM2
037672* 1270 TAD FGENIO /AC POINTS TO ENTRY OF HANDLER
037673* 1340 TAD F1400 /FORM TAD FSYS, TAD FDTA0,...
037674* 3275 DCA FGTMP /EXECUTE INLINE
037675* 0000 FGTMP, 0 /INSTRUCTION OR POINTER
037676* 3275 DCA FGTMP /FGTMP IS MOVED ENTRY NOW
037677* 1675 TAD I FGTMP /GET FUNCTION
037700* 2275 ISZ FGTMP
037701* 3330 DCA FUNC /FIRST WORD OF DTV
037702* 1675 TAD I FGTMP /GET CORE ADDRESS
037703* 2275 ISZ FGTMP
037704* 3331 DCA FUNC+1
037705* 1675 TAD I FGTMP /GET BLOCK
037706* 2275 ISZ FGTMP
037707* 3332 DCA FUNC+2
037710* 6214 RDF /SET RETURN FIELD
037711* 6201 CDF 0
037712* 1337 TAD FCDIF
037713* 3335 DCA FEXIT
037714* 1670 TAD I FGENIO
037715* 0342 AND F0076 /
037716* 7640 SZA CLA /SYS: OR DSK0: ?
037717* 6031 KSF /FLAG UP ?
037720* 5325 JMP FGNOSYS /NO, DON'T TEST
037721* 6034 KRS /YES
037722* 1341 TAD FM203 /TYPED ^C ?
037723* 7650 SNA CLA
037724* 5200 JMP 7600 /YES, NO TRANSFER
037725* 1670 FGNOSYS,TAD I FGENIO /GET UNIT+FUNCTION
037726* 6000 6000 /THE REST IS NOT OUR BISNESS
037727* 5333 JMP .+4 /SKIP THE PARAMETER WORDS
037730* 0000 FUNC, ZBLOCK 3 /THE 3 PARAMETERS
037733* 7450 SNA /ERROR ?
037734* 2275 ISZ FGTMP /NORMAL RETURN
037735* 6203 FEXIT, CDF CIF /CDF CIF RETURN
037736* 5675 JMP I FGTMP /RETURN
037737* 6203 FCDIF, CIF CDF 0
037740* 1400 F1400, 1400
037741* 7575 FM203, -203
037742* 0076 F0076, 0076
0134 FAKLEN=.-SYSHND /LENGTH OF FAKEHANDLER CODE
IFNZRO 7743-.&4000 <FAKERR,XERROR>
2761 RELOC
/M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 198
DEVLST,
IFDEF TC08 <TAPEDCB=4160>
4210 IFDEF TD8E <TAPEDCB=4210>
IFDEF TAPE <
032761 0424 DEVICE DTA0;TAPEDCB;DTACHN+0
032762 0160
032763 4210
032764 0020
032765 0424 DEVICE DTA1;TAPEDCB;DTACHN+1
032766 0161
032767 4210
032770 0021
032771 0424 DEVICE DTA2;TAPEDCB;DTACHN+2
032772 0162
032773 4210
032774 0022
032775 0424 DEVICE DTA3;TAPEDCB;DTACHN+3
032776 0163
032777 4210
033000 0023
033001 0424 DEVICE DTA4;TAPEDCB;DTACHN+4
033002 0164
033003 4210
033004 0024
033005 0424 DEVICE DTA5;TAPEDCB;DTACHN+5
033006 0165
033007 4210
033010 0025
033011 0424 DEVICE DTA6;TAPEDCB;DTACHN+6
033012 0166
033013 4210
033014 0026
033015 0424 DEVICE DTA7;TAPEDCB;DTACHN+7
033016 0167
033017 4210
033020 0027
>
IFDEF LPT <
033021 1420 DEVICE LPT;1040;LPTCHN+0
033022 2400
033023 1040
033024 0030
>
IFDEF RX01 <RXDCB=4250>
IFDEF RX02 <RXDCB=4320>
IFDEF RXA <
IFNDEF SYRX02 <
DEVICE RXA0;RXDCB;RXACHN+0
DEVICE RXA1;RXDCB;RXACHN+1
>
IFDEF SYRXO2 <
DEVICE RXA1;RXDCB;SYSCHN+1 /RXA1 IS PUBLIC IN SINGL8
DEVICE RXA2;RXDCB;RXACHN+0
DEVICE RXA3;RXDCB;RXACHN+1
>
/M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 198-1
DEVICE RBA0;4410;RXACHN+2
DEVICE RBA1;4410;RXACHN+3 /BYTE MODE FLOPPY
>
IFDEF SYRK8E <
DEVICE RKB0;4230;SYSCHN+1
DEVICE RKA1;4230;SYSCHN+2
DEVICE RKB1;4230;SYSCHN+3
DEVICE RKA2;4230;SYSCHN+4
DEVICE RKB2;4230;SYSCHN+5
DEVICE RKA3;4230;SYSCHN+6
DEVICE RKB3;4230;SYSCHN+7
>
IFDEF SY3040 <
033025 2213 DEVICE RKB0;4400;SYSCHN+1
033026 0260
033027 4400
033030 0011
033031 2213 DEVICE RKA1;4400;SYSCHN+2
033032 0161
033033 4400
033034 0012
033035 2213 DEVICE RKB1;4400;SYSCHN+3
033036 0261
033037 4400
033040 0013
033041 2213 DEVICE RKA2;4400;SYSCHN+4
033042 0162
033043 4400
033044 0014
033045 2213 DEVICE RKB2;4400;SYSCHN+5
033046 0262
033047 4400
033050 0015
033051 2213 DEVICE RKA3;4400;SYSCHN+6
033052 0163
033053 4400
033054 0016
033055 2213 DEVICE RKB3;4400;SYSCHN+7
033056 0263
033057 4400
033060 0017
>
IFDEF NSRK8E <
DEVICE RKA0;4230;DSKCHN+0
DEVICE RKB0;4230;DSKCHN+1
DEVICE RKA1;4230;DSKCHN+2
DEVICE RKB1;4230;DSKCHN+3
DEVICE RKA2;4230;DSKCHN+4
DEVICE RKB2;4230;DSKCHN+5
DEVICE RKA3;4230;DSKCHN+6
DEVICE RKB3;4230;DSKCHN+7
>
IFDEF SYRL01 <
DEVICE RL0B;4260;SYSCHN+1
DEVICE RL1A;4260;SYSCHN+2
/M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 198-2
DEVICE RL1B;4260;SYSCHN+3
DEVICE RL2A;4260;SYSCHN+4
DEVICE RL2B;4260;SYSCHN+5
DEVICE RL3A;4260;SYSCHN+6
DEVICE RL3B;4260;SYSCHN+7
DEVICE RL0C;4310;RLCCHN+0
DEVICE RL1C;4310;RLCCHN+1
DEVICE RL2C;4310;RLCCHN+2
DEVICE RL3C;4310;RLCCHN+3
>
IFDEF NSRL01 <
DEVICE RL0A;4260;DSKCHN+0
DEVICE RL0B;4260;DSKCHN+1
DEVICE RL1A;4260;DSKCHN+2
DEVICE RL1B;4260;DSKCHN+3
DEVICE RL2A;4260;DSKCHN+4
DEVICE RL2B;4260;DSKCHN+5
DEVICE RL3A;4260;DSKCHN+6
DEVICE RL3B;4260;DSKCHN+7
DEVICE RL0C;4310;RLCCHN+0
DEVICE RL1C;4310;RLCCHN+1
DEVICE RL2C;4310;RLCCHN+2
DEVICE RL3C;4310;RLCCHN+3
>
IFDEF CRD <
CDRPAT, DEVICE CDR;2030;CRDCHN+0 /MUST BE THE LAST IN THE LIST !!!
>
033061 0000 0000 /END OF LIST !
/M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 199
7000 BOBOOT, RELOC 7000
037000* 0000 BGNUMB, 0 /GETS DEVICE TYPE ON BOOT OR RESTORE
LNGLST, /LIST OF DISK LENGTH'S
037001* 1520 -SIZE0 /DSK0: = SYS:
037002* 1520 -SIZE1 /DSK1:
037003* 4650 -SIZE2 /DSK2:
037004* 4650 -SIZE3 /DSK3:
037005* 1520 -SIZE4 /DSK4:
037006* 1520 -SIZE5 /DSK5:
037007* 1520 -SIZE6 /DSK6:
037010* 1520 -SIZE7 /DSK7:
037011* 0000 BOTRNS, 0 /LOCAL 'HANDLER' TO KEEP SYS: VIRGIN
037012* 3235 DCA TRTEMP
037013* 1611 TAD I BOTRNS
037014* 2211 ISZ BOTRNS
037015* 3227 DCA BOCALL
037016* 1611 TAD I BOTRNS
037017* 2211 ISZ BOTRNS
037020* 3230 DCA BOCALL+1
037021* 1611 TAD I BOTRNS
037022* 2211 ISZ BOTRNS
037023* 3231 DCA BOCALL+2
037024* 1235 TAD TRTEMP
037025* 6000 6000
037026* 5232 JMP .+4
037027* 0000 BOCALL, ZBLOCK 3
037032* 7440 SZA
037033* 7402 HLT
037034* 5611 JMP I BOTRNS
037035* 0000 TRTEMP, 0
/M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 200
037036* 0000 ASKDIR, 0 /ASK PERMISSION TO ZERO THE DIRECTORY
037037* 4211 JMS BOTRNS /READ DIRECTORY FROM THIS SYS:
037040* 0200 200
037041* 0000 0
037042* 0001 1
037043* 1001 TAD 1 /LOOK AT INITIAL BLOCK
037044* 1377 TAD (-70 /IS IT A SYSTEM DIRECTORY?
037045* 7650 SNA CLA
037046* 5636 JMP I ASKDIR /YES, GO ON
037047* 1274 BTXT1, TAD ZEROMS /NO, WRITE MESSAGE FOR OK TO ZERO
037050* 2247 ISZ BTXT1 /
037051* 6046 TLS /
037052* 7640 SZA CLA /
037053* 5247 JMP BTXT1 /
037054* 6032 KCC /
037055* 6031 KSF /WAIT FOR ANSWER
037056* 5255 JMP .-1 /
037057* 6036 KRB /
037060* 0376 AND (337 /STRIP LOWERCASE BIT
037061* 1375 TAD (-"Y /
037062* 7440 SZA /
037063* 1374 TAD ("Y-"J /
037064* 7640 SZA CLA /
037065* 7402 HLT /STOP THIS THING ...!!!
037066* 1373 TAD (215 /CRLF
037067* 6046 TLS /
037070* 1372 TAD (212-215 /
037071* 6046 TLS /
037072* 2236 ISZ ASKDIR /'ZERO' RETURN
037073* 5636 JMP I ASKDIR /AC RANDOM !
ZEROMS,
IFNDEF GERMAN <
"N;"O;" ;"v;"a;"l;"i;"d;" ;"d;"i;"r;"e;"c;"t;"o;"r;"y;" ;"o
"n;" ;"t;"h;"i;"s;" ;"a;"r;"e;"a;" ;"-;" ;"s;"h;"a;"l
"l;" ;"I;" ;"Z;"E;"R;"O;" ;"i;"t;" ;"?;" ;0 / >
IFDEF GERMAN <
037074* 0313 "K;"E;"I;"N;" ;"V;"e;"r;"z;"e;"i;"c;"h;"n;"i;"s;" ;"a;"u
037075* 0305
037076* 0311
037077* 0316
037100* 0240
037101* 0326
037102* 0345
037103* 0362
037104* 0372
037105* 0345
037106* 0351
037107* 0343
037110* 0350
037111* 0356
037112* 0351
037113* 0363
037114* 0240
/M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 200-1
037115* 0341
037116* 0365
037117* 0346 "f;" ;"d;"i;"e;"s;"e;"m;" ;"B;"e;"r;"e;"i;"c;"h;" ;"-
037120* 0240
037121* 0344
037122* 0351
037123* 0345
037124* 0363
037125* 0345
037126* 0355
037127* 0240
037130* 0302
037131* 0345
037132* 0362
037133* 0345
037134* 0351
037135* 0343
037136* 0350
037137* 0240
037140* 0255
037141* 0240 " ;"s;"o;"l;"l;" ;"i;"c;"h;" ;"Z;"E;"R;"O;" ;"m;"a;"c
037142* 0363
037143* 0357
037144* 0354
037145* 0354
037146* 0240
037147* 0351
037150* 0343
037151* 0350
037152* 0240
037153* 0332
037154* 0305
037155* 0322
037156* 0317
037157* 0240
037160* 0355
037161* 0341
037162* 0343
037163* 0350 "h;"e;"n;" ;"?;" ;0 / >
037164* 0345
037165* 0356
037166* 0240
037167* 0277
037170* 0240
037171* 0000
037172* 7775
037173* 0215
037174* 0017
037175* 7447
037176* 0337
037177* 7710
7200 PAGE
/M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 201
037200* 5330 JMP BOOT /ENTRY FOR NORMAL BOOTSTRAP OPERATION
037201* 4777 B0, JMS I (ASKDIR /READ DIR AND ASK PERMISSION TO ZERO IF BAD
037202* 5230 JMP DIROK /DIRECTORY WAS OK, GO ON
037203* 7240 ACM1 /DIR WAS BAD BUT WE GOT OK, MAKE NEW DIRECTORY
037204* 3000 DCA 0 /ONE EMPTY
037205* 1376 TAD (70
037206* 3001 DCA 1 /FILE STORAGE START
037207* 3002 DCA 2 /NO LINK
037210* 3003 DCA 3 /NO OPEN OUTPUT FILES
037211* 7240 ACM1
037212* 3004 DCA 4 /1 ADD. INFO WORD (DATE)
037213* 3005 DCA 5 /EMPTY ENTRY
037214* 1775 TAD I (BGNUMB /WHO AM I?
037215* 7112 CLL RTR
037216* 7010 RAR /045X
037217* 1374 TAD (LNGLST-451 /INDEX INTO BACKGROUND LENGTH LIST
037220* 3010 DCA 10
037221* 1410 TAD I 10 /GET NEGATIVE LENGTH
037222* 1376 TAD (70 /--70 BLOCKS FOR SYSTEM
037223* 3006 DCA 6 /INTO LENGTH OF FIRST ENTRY
037224* 4773 JMS I (BOTRNS /WRITE IN MY DIRECTORY
037225* 4200 4200 /HOPE I HAVEN'T KILLED ANYTHING
037226* 0000 0
037227* 0001 1
/M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 202
037230* 7301 DIROK, AC0001
037231* 4773 JMS I (BOTRNS /READ MONITOR FROM DSK0:
037232* 0010 10
037233* 0000 0
037234* 0007 7 /KM-USR-DVHS-ENTER(TM8E)
/7 13 16 26
037235* 1775 TAD I (BGNUMB /GET OUR DEVICE TYPE
037236* 3772 DCA I (7560 /SET OUR SYS: TYPE
037237* 1775 TAD I (BGNUMB
037240* 3771 DCA I (7561 /SAME FOR DSK:
037241* 1370 TAD (7447+15-1-1
037242* 3010 DCA 10 /SET POINTER TO RESIDENCY TABLE
037243* 1367 TAD (7560+15-1-1
037244* 3011 DCA 11 /SET POINTER TO DEVICE TYPE TABLE
IFDEF SINGL8 <
TAD (7620 /ENTRY POINT DSK2:
DCA I 10 /
TAD (6520 /DEVICE TYPE DSK2:
DCA I 11 / >
IFNDEF SINGL8 <
037245* 2010 ISZ 10 /
037246* 2011 ISZ 11 / >
IFDEF SINGL8 <
TAD (7615 /ENTRY POINT DSK1:
DCA I 10 /
TAD (6510 /DEVICE TYPE DSK1:
DCA I 11 / >
IFNDEF SINGL8 <
037247* 2010 ISZ 10 /
037250* 2011 ISZ 11 / >
037251* 1366 TAD (7612 /ENTRY POINT DSK0:
037252* 3410 DCA I 10 /
037253* 1365 TAD (6500 /DEVICE TYPE DSK0:
037254* 3411 DCA I 11 /
/M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 203
037255* 6211 CDF 10 //
037256* 1764 TAD I (36+2000 //
IFDEF SINGL8 <
TAD (2000+15-1-1// >
IFNDEF SINGL8 <
037257* 1363 TAD (2000+17-1-1// >
037260* 3010 DCA 10 //SET POINTER TO PERMANENT DEVICE NAME TABLE
IFDEF SINGL8 <
TAD (6005 //CODE FOR DSK2:
DCA I 10 //
TAD (6004 //CODE FOR DSK1:
DCA I 10 // >
037261* 1362 TAD (6003 //CODE FOR DSK0:
037262* 3410 DCA I 10 //
037263* 1761 TAD I (37+2000 //
037264* 1274 TAD BO2000 //
037265* 3000 DCA 0 //SET POINTER TO DEVICE HANDLER INFO
037266* 6201 BRSLP, CDF 0 /ONCE ONLY CODE
037267* 1735 TAD I RESTEM /IS THIS DEVICE RESIDENT?
037270* 6211 CDF 10 //
037271* 7640 SZA CLA //
037272* 3400 DCA I 0 //ZERO DEVICE HANDLER INFO FOR THIS DEVICE
037273* 2335 ISZ RESTEM //
037274* 2000 BO2000, ISZ 0 //TO NEXT
037275* 2336 ISZ RESCNT //MORE?
037276* 5266 JMP BRSLP //YES
037277* 6201 CDF 0
037300* 4773 JMS I (BOTRNS /WRITE ON SYS:
037301* 4010 4010
037302* 0000 0
037303* 0007 7
037304* 7301 AC0001 /READ NEXT PART OF MONITOR
037305* 4773 JMS I (BOTRNS /FROM DSK0:
037306* 3610 3610
037307* 0000 0000
037310* 0051 51 /CD-SADA-ERR-CHN-ODT-MRG-REM-BOO-CCL
/51 54 56 57 60 64 65 66 67
IFZERO OS8-40 < /MAKE CCL RUN FROM DSK0:
037311* 6211 CDF 10
037312* 1360 TAD (17 /MOVE DSK0: DEV # TO CCL OVERLAY
037313* 3757 DCA I (7205
037314* 1366 TAD (7612 /ALSO DSK0: HANDLER ENTRY POINT
037315* 3756 DCA I (7206
037316* 6201 CDF 0 / >
037317* 4773 JMS I (BOTRNS /WRITE IT BACK ON THIS SYS:
037320* 7610 7610
037321* 0000 0
037322* 0051 51
/M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 204
037323* 4773 JMS I (BOTRNS /WRITE BLOCK 0 ON SYS:
037324* 4200 4200
037325* 7400 7400
037326* 0000 0000
037327* 5755 JMP I (BOOT1
037330* 4773 BOOT, JMS I (BOTRNS /READ BLOCK 0
037331* 0200 200 /WHICH HAS OUR SPECIFIC INFO
037332* 7400 7400
037333* 0000 0000
037334* 5755 JMP I (BOOT1
037335* 7447 RESTEM, 7447 /ONCE ONLY
037336* 7761 RESCNT, -17 /ONCE ONLY
037355* 7400
037356* 7206
037357* 7205
037360* 0017
037361* 2037
037362* 6003
037363* 2015
037364* 2036
037365* 6500
037366* 7612
037367* 7573
037370* 7462
037371* 7561
037372* 7560
037373* 7011
037374* 6330
037375* 7000
037376* 0070
037377* 7036
7400 PAGE
/M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 205
037400* 6211 BOOT1, CDF 10
037401* 1247 BOLOOP, TAD BOOT1+47
037402* 3611 DCA I BOPNT
037403* 2201 ISZ BOLOOP
037404* 2211 ISZ BOPNT
037405* 5201 JMP BOLOOP
037406* 6201 CDF 0
037407* 5610 JMP I .+1 /SLIP INTO 7600
037410* 7605 7605
037411* 7647 BOPNT, 7647
IFDEF SYRX02 <
NOPUNC /IT TOOK MORE TIME TO FIGURE OUT
*.+2 /RX02 LOADS AT 2
ENPUNC / >
IFNDEF SINGL8 <
037412* 0207 BOMESS, 207;"M;"8;" ;"D;"A;"T;"A;"-;"D;"I;"S;"K / >
037413* 0315
037414* 0270
037415* 0240
037416* 0304
037417* 0301
037420* 0324
037421* 0301
037422* 0255
037423* 0304
037424* 0311
037425* 0323
037426* 0313
IFDEF SINGL8 <
BOMESS, 207;"Z;"M;" ;"D;"A;"T;"A;"-;"D;"I;"S;"K / >
IFDEF SYRK8E <
NOP
RK0030, 6741 /WAIT TILL RK8E READY
JMP .-1 / >
IFDEF SYRL01 <
NOP
NOP
RL0031, 6601 /WAIT TILL RL01 READY
JMP .-1 / >
IFDEF SYRX02 <
NOP
NOP
RX0033, 6755 /WAIT TILL RX02 READY, 'LOAD' JUMPS TO HERE
JMP RXLOAD+1 /FIGURE 8 WAIT WITH 'LOAD' SUBR >
037427* 7200 CLA
037430* 1212 BOMSLP, TAD BOMESS
037431* 6046 TLS /TYPE A WARNING MESSAGE IF BOOTED
037432* 6041 TSF /ON A REAL MACHINE
037433* 5232 JMP .-1
037434* 2230 ISZ BOMSLP /SETUP FOR NEXT CHARACTER
037435* 7740 SMA SZA CLA
037436* 5230 JMP BOMSLP /GO FOR NEXT CHARACTER
037437* 7402 HLT
IFDEF SYRX02 <
/M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 205-1
JMS RXLOAD /EMPTY SILO
JMP .-1 /RX02 PRIMARY BOOT JUMPS TO HERE
NOPUNC
*.-2 /BACK TO NORMAL (RELOC'D)
ENPUNC
RXLOAD=53 /DEF FROM PRIMARY BOOT >
3522 RELOC
0440 BOBOEND=.-BOBOOT
/M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 206
TRPTAB,
IFDEF UNTRP1 <UNTRP1^10+6001>
IFDEF UNTRP2 <UNTRP2^10+6001>
IFDEF UNTRP3 <UNTRP3^10+6001>
IFDEF UNTRP4 <UNTRP4^10+6001>
IFDEF UNTRP5 <UNTRP5^10+6001>
IFDEF UNTRP6 <UNTRP6^10+6001>
IFDEF UNTRP7 <UNTRP7^10+6001>
IFDEF UNTRP8 <UNTRP8^10+6001>
IFDEF UNTRP9 <UNTRP9^10+6001>
033522 0000 0000 /END OF LIST
033523 2631 XDSKTAB,"S^100+"Y&3777;0;0;SIZE0
033524 0000
033525 0000
033526 6260
033527 2631 USYS1;UNIT1;FROM1;FROM1+SIZE1
033530 0001
033531 0000
033532 6260
033533 2631 USYS2;UNIT2;FROM2;FROM2+SIZE2
033534 0003
033535 0000
033536 3130
033537 2631 USYS3;UNIT3;FROM3;FROM3+SIZE3
033540 0003
033541 3130
033542 6260
033543 2631 USYS4;UNIT4;FROM4;FROM4+SIZE4
033544 0004
033545 0000
033546 6260
033547 2631 USYS5;UNIT5;FROM5;FROM5+SIZE5
033550 0005
033551 0000
033552 6260
033553 2631 USYS6;UNIT6;FROM6;FROM6+SIZE6
033554 0006
033555 0000
033556 6260
033557 2631 USYS7;UNIT7;FROM7;FROM7+SIZE7
033560 0007
033561 0000
033562 6260
033563 0000 BOOBUF, ZBLOCK 1000 /BUFFER IN WHICH THE BOOTBLK IS ASSEMBLED
4232 DVRSTB=BOOBUF+447 /SYS:-ENTRY DEVICE RESIDENCY TABLE
4343 DVTYPT=BOOBUF+560 /SYS:-ENTRY IN DEVICE TYPE TABLE
4372 FAKSYS=BOOBUF+607 /POSITION OF SYS: ENTRYP. IN BLOCK 0
4562 BGCORW=BOOBUF+777 /BACKGROUND CORE-WORD
/END IFNZRO BGMAX >
4600 PAGE
/M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 207
/***************** TASKBUILDER *************************
/9 FILES CAN BE LOADED IN ONE SINGLE COMMAND LINE.
/ONE SINGLE FILE MAY CONTAIN MORE THAN 1 TASK.
/OPTIONS:
/PAGE 0 VARIABLES
0020 BINPC=TEMP5 /LOAD POINTER
0001 ZNAME=TEMP1 /TASK'S NAME
0002 ZLENG=TEMP2 /LENGTH IN PAGES
0003 ZWC=TEMP3 /LENGTH OF TASK IN WORDS
0007 ZCNT=TEMP4 /TEMPORARY COUNTER
0021 ZBLK=TEMP6 /RELATIVE STARTING BLOCK
0022 ZADDR=TEMP7 /STARTING ADDRESS WITHIN THE TASK
/M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 208
/ACTIVATE THE PRE-ASSEMBLED CORE-RESIDENT TASKS.
034600 0000 SETNAM, 0 /
034601 1064 TAD [NAMLST-1 /SET UP POINTERS
034602 3016 DCA AUTO16
034603 1063 TAD [TCBTAB
034604 6201 CDF 0 //
034605 3000 SETNM1, DCA TEMP //
034606 1400 TAD I TEMP //FIRST ITEM IS NAME OR 00
034607 7450 SNA
034610 5600 JMP I SETNAM //ZERO IS TERMINATOR
034611 3416 DCA I AUTO16
034612 3400 DCA I TEMP //CLEAR THE BACKLINK!!
034613 1000 TAD TEMP //MOVE ONE BLOCKLET FURTHER
034614 1145 TAD [10
034615 5205 JMP SETNM1 //CYCLE
034616 0000 TSKBLD, 0 /TASKBUILD ROUTINE
034617 4462 RSTRT, JMS I [OS8IN /READ CHAR FROM OS8IN
034620 5616 JMP I TSKBLD /NO INPUT, RETURN
/START LOADING ALL FILES, ONE BEHIND THE OTHER
XL4,
034621 1061 TAD [200-1 /V2
034622 3010 DCA AUTO10 /V2
034623 1060 TAD [-4600 /DON'T SPOIL BATCH (5000 AND UP)
034624 3000 DCA TEMP /V2
034625 6241 CDF BGFLD+10 /V2
034626 3410 DCA I AUTO10 /V2 CLEAR LOADER AREA
034627 2000 ISZ TEMP /V2
034630 5226 JMP .-2 /V2
034631 6231 CDF BGFLD /V2
034632 7240 ACM1 /RESET TO LEADER PHASE
034633 4457 XL5, JMS I [BINL /READ FIRST FRAME AND SO ON
034634 5616 JMP I TSKBLD /CTRL/Z DETECTED
034635 5272 JMP XL6 /CHECKSUM DETECTED
034636 1020 TAD BINPC /AC=0;INSPECT BEFORE LOADING
034637 7650 SNA CLA /
034640 5246 JMP XTABLS /LOAD PAGE ZERO: PATCH MONITOR TABLES
034641 1024 TAD BINAC
034642 6241 CDF BGFLD+10 //THERE WILL THE TASK BE LOADED
034643 3420 DCA I BINPC //
034644 6231 CDF BGFLD /
034645 5233 JMP XL5 /READ NEXT FRAME
/M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 209
034646 1024 XTABLS, TAD BINAC
034647 0056 AND [7707
034650 1055 TAD [-6201
034651 7640 SZA CLA /MUST BE A CDF
034652 4563 ERR21, JMS I [ERROR /PREAMBLE ERROR
034653 1024 TAD BINAC
034654 3266 DCA YCDF
034655 4457 JMS I [BINL /GET NEXT WORD
034656 7000 NOP
034657 4563 ERR21A, JMS I [ERROR /PREABLE ERROR
034660 1024 TAD BINAC /POINTER TO WORD TO PATCH
034661 3000 DCA TEMP /
034662 4457 JMS I [BINL /GET NEXT WORD
034663 7000 NOP
034664 4563 ERR21B, JMS I [ERROR /PREABLE ERROR
034665 1024 TAD BINAC /THAT'S THE VALUE
034666 7402 YCDF, HLT /GETS A CDF
034667 3400 DCA I TEMP /AND PATCH IT NOW
034670 6231 CDF BGFLD /RESTORE DATAFIELD
034671 5233 JMP XL5 /AND JUMP BACK TO NORMAL LOADING
034672 7640 XL6, SZA CLA /CHECKSUM IN AC
034673 4563 ERR25, JMS I [ERROR /CKECKSUM ERROR
/FETCH NAME AND LENGTH FROM TASK HEADER.
/ALSO COMPUTE THE RELATIVE STARTING ADDRESS
034674 7350 AC3777
034675 6241 CDF BGFLD+10
034676 0574 AND I [200 //
034677 7450 SNA //
034700 5221 JMP XL4 //EMPTY BINARY, SKIP IT
034701 3001 DCA ZNAME //
034702 1503 TAD I [201 //GET LENGTH WORD
034703 0147 AND [7600 //MAKE CORRECT WORDCOUNT
034704 3003 DCA ZWC //
034705 1503 TAD I [201 //
034706 0070 AND [77 //TASK CONNECTED?
034707 7104 CLL RAL //# OF WORDS FOR 'CONNECT' IN AC
034710 1103 TAD [201 //SKIP THEM
034711 3022 DCA ZADDR //
034712 1422 TAD I ZADDR //NOW SCAN THE RELOCATE POINTERS
034713 2022 ISZ ZADDR //
034714 7640 SZA CLA //
034715 5312 JMP .-3 //
034716 6231 CDF BGFLD
034717 1003 TAD ZWC /SAVE ALSO LENGTH IN # OF PAGES
034720 7110 CLL RAR
034721 7002 BSW
034722 3002 DCA ZLENG /LOADED BEYOND LENGTH OF TASK?
034723 1003 TAD ZWC
034724 1174 TAD [200
034725 7041 CIA
034726 7100 CLL
034727 1020 TAD BINPC /BINPC FROM 200 UP
034730 7630 SZL CLA
034731 4563 ERR26, JMS I [ERROR /LOADED BEYOND LENGTH
/M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 210
/MAKE A TASK-CONTROL BLOCKLET
/FIRST OF ALL GET AN ENTRY IN NAMLST.
/SEARCH NAMLST IN CASE THIS IS A REPLACE OPERATION
/THEN CHECK WHETHER THE
/NEW VERSION CAN BE DROPPED INTO THE SAME HOLE.
034732 1113 XL90, TAD [-MAXNAM /TEST FOR MAX NUMBER OF ENTRIES
034733 3007 DCA ZCNT
034734 1054 TAD [NAMLST
034735 3000 DCA TEMP
034736 6201 CDF 0 //
034737 1400 XL9, TAD I TEMP
034740 7041 CIA
034741 1001 TAD ZNAME //SAME NAME?
034742 7650 SNA CLA
034743 5453 JMP I [XL91 //Y
034744 2000 ISZ TEMP //NEXT ENTRY
034745 2007 ISZ ZCNT //ALL DONE ?
034746 5337 JMP XL9 //NO, CYCLE
034747 1544 TAD I [FHEAD //MUST BE A NEW NAME, ALLOCATE NEW TCB
034750 7450 SNA //ANY SPARE TCB'S ?
034751 4563 ERR28, JMS I [ERROR //NAMELIST EXHAUSTED
034752 3000 DCA TEMP //POINTER TO NEW TCB
034753 1400 TAD I TEMP //GET NEXT FREE TCB ADDRESS
034754 3544 DCA I [FHEAD //AND STORE IN FHEAD
034755 6231 CDF BGFLD /
/SEARCH A HOLE IN DISKMAP.
034756 1052 XL75, TAD [DSKMAP
034757 3010 DCA AUTO10
034760 1410 LOOP, TAD I AUTO10
034761 7640 SZA CLA
034762 5360 JMP .-2 /LOOP
034763 1010 TAD AUTO10
034764 1051 TAD [-ENDMAP /COMPARE WITH END OF MAP
034765 7650 SNA CLA /IS THIS THE END ?
034766 4563 ERR27, JMS I [ERROR /DISKMAP FULL
034767 1002 TAD ZLENG
034770 7171 STL CIA RAR /CONVERT TO - # BLOCKS
034771 3007 DCA ZCNT /SETUP COUNTER
034772 5376 JMP LOOP2 /JUMP IN LOOP TO CHECK LENGTH
034773 1410 LOOP1, TAD I AUTO10 /GET NEXT WORD
034774 7640 SZA CLA /ALSO FREE ?
034775 5360 JMP LOOP /NO, LOOK FOR NEXT HOLE
034776 2007 LOOP2, ISZ ZCNT /LONG ENOUGH ?
034777 5373 JMP LOOP1 /NO, SEE IF THERE IS MORE ROOM
/OK, FOUND HOLE THAT'S LARGE ENOUGH
035000 1002 TAD ZLENG
035001 7171 STL CIA RAR /- # BLOCKS
035002 1010 TAD AUTO10 /SAVE POSITION IN DISKMAP
035003 1050 TAD [-DSKMAP /RELATIVE BLOCK#
035004 1452 TAD I [DSKMAP /ADD OFFSET IN SAVE FILE
035005 3021 DCA ZBLK
/M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 211
/FILL IN THE DISKMAP
035006 1002 TAD ZLENG /COUNTS # OF PAGES
035007 7171 STL CIA RAR /V3 CONVERT TO -# OF BLOCKS
035010 3007 DCA ZCNT
035011 1002 TAD ZLENG /SET POINTER TO BEGIN OF HOLE
035012 7171 STL CIA RAR /
035013 1010 TAD AUTO10
035014 3010 DCA AUTO10
035015 1001 TAD ZNAME /NAME MUST BE UNEQ 0
035016 3410 DCA I AUTO10
035017 2007 ISZ ZCNT
035020 5215 JMP .-3
035021 5267 JMP XL10
/NAME DOES ALREADY EXIST IN THE SYSTEM, DELETE THE OLD
/TASK FIRST
035022 3400 XL91, DCA I TEMP /ZERO THE NAME ENTRY
035023 1000 TAD TEMP
035024 1047 TAD [-NAMLST
035025 7104 CLL RAL /^10
035026 7006 RTL /FIND PLACE IN TCBTAB
035027 1063 TAD [TCBTAB
035030 3000 DCA TEMP
035031 1544 TAD I [FHEAD
035032 3400 DCA I TEMP
035033 1000 TAD TEMP
035034 3544 DCA I [FHEAD
035035 2000 ISZ TEMP
035036 2000 ISZ TEMP
035037 2000 ISZ TEMP
035040 1400 TAD I TEMP /GET BLOCKNUMBER OFFSET
035041 7041 CIA
035042 6231 CDF BGFLD
035043 1452 TAD I [DSKMAP /SUBSTRACT OFFSET IN SAVEFILE
035044 7040 CMA /CIA: BUG, CORRECTED 13-JAN-80
035045 1052 TAD [DSKMAP
035046 3010 DCA AUTO10
035047 1010 TAD AUTO10
035050 3011 DCA AUTO11
035051 1410 DELETE, TAD I AUTO10
035052 7041 CIA
035053 1001 TAD ZNAME
035054 7640 SZA CLA /STILL THE SAME NAME ?
035055 5260 JMP ENDDEL /NO, ENTRY IS DELETED
035056 3411 DCA I AUTO11 /DELETE THIS ENTRY
035057 5251 JMP DELETE
035060 6211 ENDDEL, CDF 10
035061 1446 TAD I [7643
035062 6231 CDF BGFLD
035063 0045 AND [400
035064 7640 SZA CLA /DELETE OPTION SWITCH (/D) ?
035065 5444 JMP I [XL4 /YES, DON'T INSTALL THIS TASK
035066 5443 JMP I [XL90 /NO, GO INSTALL THIS TASK
/M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 212
/START FILLING IN THE PARAMETERS:
035067 1000 XL10, TAD TEMP /POINTER IN TCBTAB
035070 3011 DCA AUTO11
035071 6201 CDF 0 //
035072 3400 DCA I TEMP //ZERO BACKLINK
035073 6241 CDF BGFLD+10
035074 7203 AC0100 /EXTRACT AUTO-START BIT
035075 0503 AND I [201
035076 6201 CDF 0
035077 3411 DCA I AUTO11 /SET 0 OR 100 IN THREAD WORD
035100 1022 TAD ZADDR /STARTING ADDRESS FROM *200 ON
035101 0061 AND [177 /V3 MAKE IT PAGE ZERO
035102 3411 DCA I AUTO11 /RELATIVE STARTING ADDRESS
035103 1021 TAD ZBLK
035104 3411 DCA I AUTO11 /RELATIVE BLOCK NUMBER
035105 1003 TAD ZWC /LENGTH,FIELD AND ONDISK BIT
035106 7110 CLL RAR /V7A BREAK-FLAG=0
035107 1042 TAD [FIELDS^10+1 /V3 SET ONDISK BIT,
035110 3411 DCA I AUTO11 /RELATE TO HIGHEST+1 FG-FIELD
035111 1041 TAD [CDF%2
035112 3411 DCA I AUTO11
/UPDATE NAMLST.
/POSITION IN NAMLST.
035113 1000 TAD TEMP
035114 1063 TAD [-TCBTAB
035115 7110 CLL RAR
035116 7110 CLL RAR
035117 7110 CLL RAR
035120 1054 TAD [NAMLST
035121 3000 DCA TEMP
035122 1001 TAD ZNAME
035123 3400 DCA I TEMP
/WRITE TASK ONTO DISK
035124 6231 CDF BGFLD
035125 1002 TAD ZLENG
035126 7111 CLL IAC RAR /# OF BLOCKS
035127 1021 TAD ZBLK /+ RELATIVE BLOCK #
035130 1777 TAD I (ACTLEN /-ACTUAL FILE LENGTH
035131 7700 SMA CLA
035132 4563 ERR23, JMS I [ERROR /?MULTI8.SV TOO SHORT?
035133 1003 TAD ZWC /MAKE FUNCTIONWORD
035134 7130 STL RAR /WRITE; WLL.LLL.FFF.000
035135 1040 TAD [BGFLD+10
035136 3344 DCA XLDTV
035137 1565 TAD I [OFSET /BLOCK# ON DISK
035140 1021 TAD ZBLK
035141 3346 DCA XLBLK
035142 6202 CIF 0
035143 4564 JMS I [SYSHND
035144 0000 XLDTV, 0 /FUNCTION WORD
035145 0200 200 /ADDRESS IN CORE
035146 0000 XLBLK, 0 /BLOCK # ON DISK
035147 4563 ERR29, JMS I [ERROR /WRITE ERROR
/M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 212-1
035150 3025 DCA CHANGD /SET SAVE FLAG
035151 5444 JMP I [XL4
035177 1015
5200 PAGE
/M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 213
/BINARY LOADER SUBROUTINE READ A BINAIRY FILE AND
/PRODUCES TWO PARAMETERS OF
/INTEREST:THE LOAD POINTER 'BINPC', AND THE CONTENTS
/OF THE DATA 'BINAC'. THE USER CAN TEST FORMATS AND
/BOUNDARIES, AND HAS TO DEPOSIT THE DATA HIMSELF.
/DURING LEADER PHASE THE ROUTINE IGNORES LEADER
/CODE. A JMS TO BINL WITH AC UNEQ 0 ALSO
/RESETS ALL PARAMETERS AND RETURNS TO LEADER MODE.
/HOW TO USE THE ROUTINE AS A STANDARD BINARY LOADER
/START, JMS BINL
/ HLT /EOT RETURN;AC=0
/ HLT /READY RETURN;AC=DIFFERENCE IN CHECKSUMS
/ TAD BINAC /AC=0;NORMAL RETURN
/ CDF DATAFIELD
/ DCA I BINPC
/ JMP START
035200 0000 BINL, .-. /AC UNEQ 0 =RESET PARAMETERS
035201 7640 SZA CLA
035202 5260 JMP BINIT /RESET
035203 2020 ISZ BINPC /V4 UPDATE POINTER
035204 1277 BINCHX, TAD BINW1 /V4 UPDATE CHECKSUM
035205 1300 TAD BINW2 /V4
035206 1301 TAD BINSUM /V4
035207 3301 BINGO, DCA BINSUM /CLEAR OR ADD TO CHECKSUM
035210 1276 TAD BINCHR
035211 3277 DCA BINW1
035212 4462 JMS I [OS8IN /V4 LOOK AHEAD
035213 5600 JMP I BINL /END OF TAPE
035214 3300 DCA BINW2
035215 4230 JMS BINGG /READ NEXT
035216 5267 JMP BINEND /TRAILER= END
035217 4251 JMS BINASS /ASSEMBLE WORD1 AND WORD2
035220 7430 SZL /ORIGIN ?
035221 5226 JMP BINNPC /V4 YES:SET ORIGIN
035222 3024 DCA BINAC /SAVE DATA
035223 2200 ISZ BINL /NORMAL RETURN
035224 2200 BINOUT, ISZ BINL /V4 CHECKSUM RETURN
035225 5600 JMP I BINL /V4
035226 3020 BINNPC, DCA BINPC /V4 SET ORIGIN
035227 5204 JMP BINCHX /V4 DON'T UPDATE POINTER
/M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 214
035230 0000 BINGG, .-. /READ AND TEST FRAMES
035231 4462 JMS I [OS8IN /V4
035232 5600 JMP I BINL /END OF TAPE
035233 3276 DCA BINCHR /SAVE FRAME
035234 1276 TAD BINCHR
035235 1147 TAD [-200 /200 ?
035236 7510 SPA /YES
035237 2230 ISZ BINGG /DATA OR ORIGIN
035240 7750 SPA SNA CLA
035241 5630 JMP I BINGG /DATA, ORIGIN OR L/T
035242 1276 TAD BINCHR
035243 1037 TAD [-300
035244 7500 SMA /IS IT REALLY A BINARY FILE ?
035245 0036 AND [7
035246 7650 SNA CLA /V4
035247 5231 JMP BINGG+1 /V4 IGNORE FIELD SETTING
035250 4563 ERR22, JMS I [ERROR /?BAD BINARY?
035251 0000 BINASS, .-. /ASSEMBLE 2 FRAMES
035252 1277 TAD BINW1
035253 7106 CLL RTL /SWAP BYTES
035254 7006 RTL
035255 7006 RTL /NO BSW!, ORIGIN SETTING MAKES LINK=1
035256 1300 TAD BINW2
035257 5651 JMP I BINASS /RETURN
035260 3277 BINIT, DCA BINW1 /V4
035261 3300 DCA BINW2 /V4
035262 1174 TAD [200 /V4
035263 3020 DCA BINPC /V4
035264 4230 JMS BINGG
035265 5264 JMP .-1 /IGNORE LEADER
035266 5207 JMP BINGO
035267 7240 BINEND, ACM1
035270 1020 TAD BINPC
035271 3020 DCA BINPC /BACKUP BINPC
035272 4251 JMS BINASS /FOR CHECKSUM
035273 7041 CIA
035274 1301 TAD BINSUM
035275 5224 JMP BINOUT /CHECKSUM RETURN
035276 0000 BINCHR, 0 /LAST READ CHAR.
035277 0000 BINW1, 0 /FIRST FRAME
035300 0000 BINW2, 0 /SECOND FRAME
035301 0000 BINSUM, 0 /CHECKSUM
5400 PAGE
/M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 215
/USER EQUATES
0001 IBUFLG=1 /LENGTH OF INPUT BUFFER
/PROGRAM EQUATES
0030 OSIFLD=BGFLD /FIELD OF PROGRAM IS
0030 IBUFLD=BGFLD /FIELD OF INPUTBUFFER
0030 IPRFLD=BGFLD /FIELD OF CALLING PROGRAM
/ DATAFIELD:
/0 FIELD 0
/1 FIELD 10
/Z FIELD ZERO
035400 0000 OS8IN, 0
035401 5672 JMP I OSIPCH /Z COROUTINES
OSIFRST,
035402 6211 OSINXT, CDF 10 /1
035403 2307 ISZ OSIFILP /1
035404 1707 TAD I OSIFILP /1
035405 6231 CDF OSIFLD /
035406 7450 SNA /Z
035407 5302 JMP OSIRST /Z NO NEXT ONE, MAKE RESTARTABLE
035410 6212 CIF 10 /
035411 4710 JMS I OSIUSR /Z
035412 0012 INQUIRE /Z FETCH HANDLER
035413 0000 OSIHND, 0 /Z INIT VALUE
035414 5221 JMP ERR9 /VERY STRANGE INDEED
035415 1213 TAD OSIHND /GET HANDLER ADDRESS
035416 1377 TAD (200
035417 0376 AND (7600
035420 7640 SZA CLA /ADDRESS IN PAGE 7600 ?
035421 4775 ERR9, JMS I (ERROR /?NON-RESIDENT HANDLER?
035422 6211 CDF 10 /1
035423 2307 ISZ OSIFILP /1
035424 1707 TAD I OSIFILP /1
035425 3237 DCA OSIBLK /1
035426 6231 CDF OSIFLD /
OSIREAD, /Z
035427 1376 TAD (7600 /Z
035430 3313 DCA OSICNT /Z
035431 1374 TAD (200+IBUFLD /Z
035432 3235 DCA OSIFUNC /Z
035433 6202 CIF 0 /
035434 4613 JMS I OSIHND /
OSITEM,
035435 0230 OSIFUNC, 200+IBUFLD /Z
035436 5600 OSIBUF, BUFST /Z
035437 7746 OSIBLK, 7746 /Z INIT VALUE
035440 4775 ERR10, JMS I (ERROR /?READ ERROR?
035441 2237 ISZ OSIBLK /Z
035442 1236 TAD OSIBUF /Z
035443 3311 DCA OSIPNT /Z
/M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 216
035444 1711 OSILP, TAD I OSIPNT /Z FAST BUFFER UNPACK
035445 4272 JMS OSIPCH /Z
035446 1711 TAD I OSIPNT /Z
035447 2311 ISZ OSIPNT /Z
035450 0373 AND (7400 /Z
035451 3235 DCA OSITEM /Z
035452 1711 TAD I OSIPNT /Z
035453 4272 JMS OSIPCH /Z
035454 1711 TAD I OSIPNT /Z
035455 2311 ISZ OSIPNT /Z
035456 0373 AND (7400 /Z
035457 7112 CLL RTR /Z
035460 7012 RTR /Z
035461 1235 TAD OSITEM /Z
035462 7012 RTR /Z
035463 7012 RTR /Z
035464 4272 JMS OSIPCH /Z
035465 2313 ISZ OSICNT /Z
035466 5244 JMP OSILP /Z
035467 2312 ISZ OSINUM /Z
035470 5227 JMP OSIREAD /Z
035471 5202 JMP OSINXT /Z
035472 5402 OSIPCH, OSIFRST /Z COROUTINES
035473 0372 AND (377 /Z
035474 1371 TAD (-232 /Z
035475 7450 SNA /Z
035476 5202 JMP OSINXT /Z
035477 2200 ISZ OS8IN
035500 1370 TAD (232 /Z
035501 5600 JMP I OS8IN /Z
035502 1367 OSIRST, TAD (OSIFRST /Z
035503 3272 DCA OSIPCH /Z
035504 1366 TAD (7617-1 /Z
035505 3307 DCA OSIFILP /Z
035506 5600 JMP I OS8IN /Z
035507 7616 OSIFILP,7617-1
035510 7700 OSIUSR, 7700
035511 0000 OSIPNT, 0
035512 0000 OSINUM, 0
035513 0000 OSICNT, 0
035566 7616
035567 5402
035570 0232
035571 7546
035572 0377
035573 7400
035574 0230
035575 2076
035576 7600
035577 0200
5600 PAGE
/M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 216-1
035600 0000 BUFST, ZBLOCK 400 /INPUT BUFFER
6400 ENDPWR=.+400&7400
/M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 217
/PAGE ZERO LITERALS:
$
030036 0007
030037 7500
030040 0040
030041 3100
030042 0031
030043 4732
030044 4621
030045 0400
030046 7643
030047 4313
030050 7406
030051 7023
030052 0372
030053 5022
030054 3465
030055 1577
030056 7707
030057 5200
030060 3200
030061 0177
030062 5400
030063 4000
030064 3464
030065 0212
030066 0215
030067 0240
030070 0077
030071 2234
030072 3363
030073 6241
030074 7774
030075 7756
030076 7764
030077 5372
030100 1030
030101 7761
030102 7762
030103 0201
030104 7773
030105 6233
030106 3521
030107 6000
030110 0471
030111 0005
030112 0137
030113 7730
030114 4001
030115 7360
030116 0004
030117 0205
030120 3317
030121 7775
030122 0113
/M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 217-1
030123 0112
030124 0110
030125 7660
030126 7776
030127 4342
030130 4231
030131 4233
030132 4232
030133 4562
030134 1040
030135 4707
030136 7777
030137 3361
030140 7760
030141 0600
030142 0017
030143 3217
030144 0133
030145 0010
030146 4163
030147 7600
030150 2000
030151 7644
030152 7642
030153 4616
030154 1600
030155 7740
030156 7577
030157 3522
030160 0020
030161 3700
030162 0361
030163 2076
030164 7607
030165 1014
030166 0352
030167 0223
030170 1064
030171 4600
030172 1400
030173 7700
030174 0200
030175 6004
030176 7746
030177 1000
/M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 218
ACCRD 1321 BG3IN 3100 CDTOAC 4101 C3BACK 0210
ACCRST 1330 BG3OUT 3120 CDTOIF 4107 C3CHAR 0000
ACM1 7240 BINAC 0024 CHAIND 0026 C3ESCP 0233
ACM2 7344 BINASS 5251 CHANGD 0025 C3FILL 0000
ACM3 7346 BINCHR 5276 CHEAD 0140 C37 0046
ACTLEN 1015 BINCHX 5204 CHNDRV 2347 C3700 0060
AC0001 7301 BINEND 5267 CINT 6204 C4 0043
AC0002 7326 BINGG 5230 CLEAR 1000 C6201 0061
AC0003 7325 BINGO 5207 CLKINT 0234 C6202 0005
AC0004 7307 BINIT 5260 CLKIN1 0264 C6203 0076
AC0006 7327 BINL 5200 CLNGTH 1166 C7 0044
AC0100 7203 BINNPC 5226 CLOSE 0004 C70 0047
AC2000 7332 BINOUT 5224 CLRQ 2731 C7000 0062
AC3777 7350 BINPC 0020 CLRQ1 2735 C7400 0063
AC4000 7330 BINSUM 5301 CLRQ2 2751 C7600 0065
AC5777 7352 BINW1 5277 CLRTAB 3320 C77 0050
AC6000 7333 BINW2 5300 COMPNT 0120 C7700 0066
AC7775 7346 BJOB 0122 CONCDF 2455 C7770 0067
AC7776 7344 BLDCUR 0753 CONGET 2454 C7771 0070
AC7777 7240 BLDNEW 0741 CONNCT 2400 C7774 0071
ADR 0276 BOBOEN 0440 CONSET 2431 C7775 0072
ALARM 0075 BOBOOT 3062 CONTAB 0130 C7776 0073
ALARM0 1434 BOCALL 7027 CONTIN 0001 C7777 0074
ASC 7403 BOLOOP 7401 CON1 2403 DAC 0160
ASEMMX 0010 BOMESS 7412 COPCLR 1434 DCSR 6504
ASKDIR 7036 BOMSLP 7430 COPDSK 0756 DEFER 0114
AUTO10 0010 BOOBUF 3563 COPYZ 1400 DELETE 5051
AUTO11 0011 BOOT 7330 CORMAP 3323 DEVLST 2761
AUTO12 0012 BOOT1 7400 CRLF 2162 DEVNAM 1263
AUTO13 0013 BOPNT 7411 CTAIL 0141 DGNCNT 0001
AUTO14 0014 BOTRNS 7011 CUDTV 2325 DGNNUM 3150
AUTO15 0015 BO2000 7274 CUF 6264 DGNPNT 3147
AUTO16 0016 BREAK 0074 CURTSK 0127 DGNTIC 0012
AUTO17 0017 BREAKR 0276 C0BACK 0210 DGNTIM 3112
BASE 0030 BREAK0 1442 C0CHAR 0000 DGN1 3117
BB 2504 BREAK1 0312 C0ESCP 0233 DGN2 3133
BBCNT 2516 BRKCHR 0206 C0FILL 0000 DGN4 3132
BGCORE 0010 BRKTST 1454 C1BACK 0210 DIROK 7230
BGCORW 4562 BRK1 0314 C1CHAR 0000 DISCON 2460
BGDATA 3707 BRK3 0311 C1ESCP 0233 DISP 1224
BGERR 0002 BRSLP 7266 C1FILL 0000 DISPAT 0471
BGFLD 0030 BSFLAG 1226 C100 0051 DISPLP 0512
BGFLDS 0005 BSIZE 0020 C17 0045 DISP1 0525
BGID 0155 BSSLOT 0033 C177 0052 DISP2 0537
BGMAX 0003 BSTAB 3361 C2 0041 DISP3 0550
BGNUMB 7000 BTXT1 7047 C2BACK 0210 DISP4 0552
BGREL 1072 BUFST 5600 C2CHAR 0000 DISP5 0554
BGSTOP 1000 B0 7201 C2ESCP 0233 DISP6 0400
BG1 3707 CALL 0024 C2FILL 0000 DISP7 0436
BG1IN 3000 CALL0 1045 C200 0053 DISTMP 2454
BG1OUT 3020 CALL1 1054 C212 0054 DIS1 2463
BG2 3775 CALL2 1063 C215 0055 DK 2463
BG2IN 3040 CCB 0356 C240 0056 DKCDF 2506
BG2OUT 3060 CCBLST 0362 C260 0057 DKCLOS 2557
BG3 4063 CD 0005 C3 0042 DKDTV 2562
/M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 218-1
DKERRO 2556 EMBSI1 1265 EM1 0520 EXIT 1040
DKNAME 2545 EMBSI2 1270 EM2 0522 FAKHND 2625
DKSLT1 2552 EMCALL 1000 EM20 0536 FAKLEN 0134
DKSLT2 2555 EMCDIF 0623 EM20TB 3527 FAKSYS 4372
DKUSED 0001 EMCHCK 0635 EM3 0523 FAKVER 0015
DK8EP 0130 EMCHNL 2244 EM9 1002 FASSGN 7623
DLCR 6502 EMCLA 1362 ENDDEL 5060 FBLKO 3416
DLSR 6512 EMCLCA 0716 ENDF00 4600 FCDIF 7737
DLSS 6506 EMDOT 0527 ENDF10 4200 FERROR 2656
DLTR 6514 EMDSK0 2331 ENDF20 0200 FETCH 0001
DLTW 6515 EMDSK1 2361 ENDF30 0200 FEXIT 7735
DMPBLK 2005 EMECHO 0760 ENDF40 0200 FGENIO 7670
DNTREL 0424 EMERRO 0723 ENDF50 0200 FGNOSY 7725
DOTF00 3200 EMFETC 2200 ENDF60 0200 FGTMP 7675
DOTF10 4200 EMGETF 0650 ENDF70 0200 FHEAD 0133
DOTF20 0120 EMGIGA 0542 ENDMAP 0755 FIELDS 0003
DOTF30 0120 EMGVIR 0677 ENDPWR 6400 FILLQ 2600
DOTF40 0120 EMH 0516 ENTER 0003 FILLQ1 2650
DOTF50 0120 EMHAND 2215 EOFERR 0020 FMASK 0045
DOTF60 0120 EMHD 0552 EOMERR 0010 FM203 7741
DOTF70 0120 EMHLT 0744 ERRFND 2117 FNORML 2655
DO6030 1506 EMINAC 1255 ERRLOG 2737 FQLAST 3340
DO6031 1464 EMLIST 0537 ERRLOP 2107 FRECNT 0121
DO6032 1504 EMLOOP 1115 ERRLST 2235 FREE 0120
DO6034 1525 EMNAME 1007 ERROR 2076 FRESLT 3360
DO6036 1501 EMNUMB 0600 ERRTSK 1441 FRETRN 2657
DO6044 1400 EMOPEN 2434 ERR0 2072 FROM1 0000
DO6046 1400 EMOR 1530 ERR10 5440 FROM2 0000
DPSZ 7451 EMQEND 0705 ERR2 1734 FROM3 3130
DRCR 6503 EMQUIC 0707 ERR21 4652 FROM4 0000
DRSR 6505 EMQUIT 0757 ERR21A 4657 FROM5 0000
DRSS 6507 EMREDY 1213 ERR21B 4664 FROM6 0000
DRTR 6516 EMREL 1074 ERR22 5250 FROM7 0000
DSDD 6501 EMREL1 1142 ERR23 5132 FSTEXT 0447
DSDE 6511 EMRUN 1273 ERR23A 0315 FSYS 7607
DSKCO1 0765 EMRUN0 1312 ERR25 4673 FUN 0275
DSKMAP 0372 EMRUN1 1316 ERR26 4731 FUNC 7730
DSKTAB 7600 EMSGT 1202 ERR27 4766 FUNCTI 0025
DSRR 6513 EMSKIP 1207 ERR28 4751 FUNTAB 1336
DTACHN 0020 EMSPY 1535 ERR29 5147 F0076 7742
DVRSTB 4232 EMSTLL 1335 ERR3 0256 F1400 7740
DVTYPT 4343 EMSTRT 1476 ERR3A 0300 GERMAN 0001
DWCA 6517 EMTAB 3427 ERR4 0327 GET 0135
D2 0540 EMTIME 1745 ERR4A 0334 GETCDF 1032
D6046A 1427 EMULAT 2000 ERR4B 0343 GETLEN 2056
D6046C 1436 EMVER 1200 ERR5 1146 GETNEW 1000
D6046X 1425 EMWAIT 1024 ERR5A 1167 GETN1 1013
E 2233 EMW1 1033 ERR5B 1160 GETN2 1036
EAE 0001 EMX 0733 ERR6 1016 GETQ 2721
EMACTI 1246 EMXNOP 0732 ERR7 2074 GIGAMX 0030
EMBG1 4070 EMXSKP 0731 ERR8 1330 GIGATB 3657
EMBG2 4120 EM00 0532 ERR9 5421 GO 1600
EMBG3 4150 EM00TB 3627 ERSTAT 2740 HALT 0010
EMBRED 0627 EM03 0534 ESCALT 1517 HALT0 1264
EMBSIN 1263 EM03TB 3637 EVENTF 0033 HELP 1753
/M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 218-2
HELP1 1755 KHINRM 1664 LSYSDR 7677 M3 0072
HLPCNT 1752 KHIOUT 2134 LZERO 3777 M4 0071
HNDTAB 3417 KHIRUN 1610 MAININ 1102 M400 0063
HNGCNT 0120 KHIST 2026 MAPEND 3464 M7 0070
HOLCNT 1600 KHISTP 1734 MAPIND 2010 M8BITS 7667
HOLE 1603 KHI0 1600 MAXDEV 0007 NAMLST 3465
HOLE1 1615 KHI11 1603 MAXNAM 0050 NEWLEN 0342
HOLE10 1641 KHI12 1720 MAXSLO 0033 NEWLNG 1145
HOLE11 1643 KHI21 2112 MHEAD 0136 NEWSAV 0314
HOLE12 1655 KHI3 1724 MIDI 0310 NEWSWP 1131
HOLE13 1660 KHI4 2056 MONAC 0023 NEWTSK 0027
HOLE14 1672 KHI5 2027 MONCDF 0605 NO 1000
HOLE2 1627 KHI51 2045 MONCIF 0675 NOCHCK 2314
HOLE20 1700 KHI8 2143 MONDUM 2031 NOTERM 0621
HOLE3 1632 KHLT 2426 MONERR 1114 NOTSYS 2274
HOLE7 1634 KHO 2403 MONER1 1113 NULL 0524
HOLLEN 1601 KHOBG1 4060 MONITO 0002 O 4000
HOLMAX 1602 KHOBG2 4110 MONLDF 0024 OFSET 1014
HRDERR 0004 KHOBG3 4140 MONPC 0022 ONDISK 0400
HRDINT 0413 KHO1 2404 MONRTN 0661 OO 0074
HRDLST 3222 KHO2 2400 MSEC 0144 OSIBLK 5437
HRD1 0417 KHTEST 2000 MSG0 2353 OSIBUF 5436
HRD2 0423 KHT1 2011 MSG10 2503 OSICNT 5513
HWTICK 0012 KHT2 2020 MSG11 2401 OSIFIL 5507
IBMPRO 0520 KK 0315 MSG2 2364 OSIFLD 0030
IBUFLD 0030 KKESCP 0337 MSG21 2512 OSIFRS 5402
IBUFLG 0001 KK1LST 0000 MSG22 2523 OSIFUN 5435
IHEAD 0134 KK2 0334 MSG23 2532 OSIHND 5413
INACTI 4000 K1TCBP 4044 MSG25 2545 OSILP 5444
INCFLD 0070 K10 1107 MSG26 2553 OSINUM 5512
INCORE 0100 LASTNM 3554 MSG27 2562 OSINXT 5402
INQUIR 0012 LCONFG 7767 MSG28 2574 OSIPCH 5472
INSOF 0270 LDATA 7757 MSG29 2605 OSIPNT 5511
INT 0177 LEMULA 7377 MSG3 2401 OSIREA 5427
INTAC 0031 LE8E 4205 MSG4 2411 OSIRST 5502
INTDEV 0004 LFPP 7775 MSG5 2425 OSITEM 5435
INTEXT 0557 LJOB 0125 MSG6 2441 OSIUSR 5510
INTFLD 0032 LLOCAL 7773 MSG7 2455 OS8 0040
INT1 0433 LMONIT 6777 MSG8 2401 OS8DAT 7666
IPRFLD 0030 LNGLST 7001 MSG9 2467 OS8IN 5400
ITAIL 0135 LNGTH 0237 MSG99 2614 OUT 2154
JSW 7746 LNKTCB 1064 MTAIL 0137 O1 0041
KB1 0005 LNKTC1 1067 MTQ 2661 O2 0016
KHCALL 2423 LNKTC2 1101 MTQ1 2715 O3 0064
KHECHO 1677 LOADPT 4160 MULTI8 0352 PARAM 0026
KHEXIT 2432 LONG 0200 MYCDF 0110 PASS1 0000
KHEXT 1451 LOOKUP 0002 MYCDIF 0113 PASS2 0001
KHEXT2 1456 LOOP 4760 MYCIF 0112 PASS3 0000
KHI 1612 LOOP1 4773 M1 0074 PDPTST 2065
KHIBG1 4050 LOOP2 4776 M10 0067 PIPNAM 2217
KHIBG2 4100 LPT 0004 M100 0066 POOLN 0010
KHIBG3 4130 LPTCHN 0030 M1000 0062 PRBOOT 1212
KHICON 2065 LPWRUP 7737 M2 0073 PRECE 1115
KHILP 1614 LRESMO 7577 M200 0065 PRECED 0000
KHINAM 1640 LSKIPS 5777 M215 0064 PRGBLK 1465
/M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 218-3
PRGBUF 1505 RESTM1 1525 SOFINT 0400 SYSCHN 0010
PRGB1 1506 RESTM2 1526 SOFSLO 0024 SYSCNT 2675
PRGB2 1540 RESTRT 0030 STACDF 1145 SYSCTR 3105
PRGLOP 1525 RESTR0 1206 STACIF 1146 SYSDO 3001
PROGER 0001 REST1 1215 STALL 0064 SYSDRV 3104
PROTOT 0001 RES1 1506 STALL0 1462 SYSDTV 3111
PSETL 2216 RES2 1515 STALL1 1474 SYSGET 3110
PTEMP0 1211 RETRN0 0630 START 1121 SYSHND 7607
PTEMP1 1200 RETRN1 0643 START1 1150 SYSI 0001
PTEMP2 1201 RETRY 2201 START2 1130 SYSINT 2734
PTEMP3 1202 RETURN 0040 STBLK 0236 SYSIN0 2677
PTEMP4 1203 RSAVE 1527 STBLK0 0325 SYSLOT 2736
PTEMP5 1204 RSTRT 4617 STBLK1 0255 SYSMAX 0010
PTEMP6 1205 RUN 0025 STBLK2 0277 SYSPUT 2671
PTEMP7 1206 SAM 7457 STLL0 1342 SYSQ 3200
PTEMP8 1207 SAVE 0223 STLL1 1361 SYSRW 3100
PTEMP9 1210 SAVLOP 0266 STOP 0034 SYSTAT 2733
PUT 0144 SCA 7441 STOP0 1155 SYSTEM 2672
PWRUP 0200 SCENTR 2632 STRT 1000 SYSTM 2673
PWR1 1047 SCL 7403 SUF 6274 SYSWAI 2663
PWR1A 1062 SETBAS 0123 SUSPND 0070 SYSWAT 2727
PWR10 1410 SETBLK 1044 SUSPN0 1200 SYSWC 3106
PWR12 1443 SETDMP 2000 SVLNGT 0125 SYS10 2710
PWR14 1627 SETEX 1545 SWAB 7431 SYS5 2636
PWR15 1656 SETEX1 1543 SWAP1 1122 SY3040 0001
PWR4 1220 SETEX2 1544 SWBA 7447 S8WAIT 1464
PWR4A 1234 SETFAK 1213 SWBLOK 1111 TAPE 0002
PWR5 1253 SETLEN 1455 SWPERR 0001 TAPEDC 4210
PWR5A 1313 SETMAP 2047 SWPER1 1116 TAPETB 3220
PWR5B 1315 SETMEM 2035 SWPER2 2322 TCBTAB 4000
PWR8 1403 SETMM1 2044 SWPER3 2331 TD8E 0001
PWR9 1406 SETNAM 4600 SWPER4 2342 TEMP 0000
P7612 1736 SETNM1 4605 SWPFIL 2227 TEMP1 0001
RBOOT 1712 SETPIP 2200 SWPIN 2027 TEMP2 0002
RELBLK 0054 SETSWP 1104 SWPLEN 1112 TEMP3 0003
RELCDF 2242 SETSW1 1125 SWPOUT 4002 TEMP4 0007
RELEAS 4000 SETTRP 1665 SWPTAB 3367 TEMP5 0020
RELESE 1704 SETUP 2761 SWP1 2064 TEMP6 0021
RELES1 1726 SIGHLT 1231 SWP1A 2252 TEMP7 0022
RELPA0 1400 SIGNAL 0004 SWP2 2261 TENTLN 0326
RELPA1 1430 SIGNL0 1231 SWP3 2270 TICK 2347
RELSUB 1735 SIGNL1 1255 SWP4 2273 TICK1 2367
RELSU2 1747 SINT 6254 SWP5 2302 TIME 0272
REQBLK 0050 SIZE0 6260 SWP6 2311 TIMEOU 0002
REQPA0 1300 SIZE1 6260 SY 2600 TIMER 0002
REQPA1 1312 SIZE2 3130 SYCLOS 2660 TKBNXT 1021
REQPA2 1314 SIZE3 3130 SYERCN 2735 TOTSLO 0037
RERTRN 0700 SIZE4 6260 SYEROR 2657 TRACK 0020
RESCNT 7336 SIZE5 6260 SYEXIT 2661 TRAP 0001
RESERV 0020 SIZE6 6260 SYFLD 2674 TRAPIN 0465
RESER0 1221 SIZE7 6260 SYIGNR 2723 TRAP0 0416
RESEXT 1524 SJOB 0126 SYLNGT 6260 TRPTAB 3522
RESNAM 2223 SKPDEV 0007 SYS 0003 TRTEMP 7035
RESRV 1500 SKPEND 0455 SYSCA 3107 TSKBLD 4616
RESTEM 7335 SKP0 0202 SYSCDF 3021 TSTJMP 1227
/M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 218-4
TT 0200 UBUFIN 0025 XACCDF 0105
TTBACK 0311 UBUFOU 0030 XCOUNT 2661
TTCHAR 0307 UCHAR 0056 XCURTS 0134
TTCOUN 0310 UCHNL0 0035 XDSKTA 3523
TTFCHR 0312 UCOUNT 0061 XJOB 0124
TTFILL 0313 UCUR 0034 XLBLK 5146
TTFLL 0250 UDTV 0012 XLDTV 5144
TTOUT 0256 UECHO 0045 XLISTX 0000
TTOU1 0301 UEND 0066 XL10 5067
TTSAV 0306 UFLDS 0004 XL4 4621
TTTAB 0241 UFLD0 0046 XL5 4633
TTTMP 0314 UINST 0006 XL6 4672
TTYMAX 0001 UKB 0057 XL75 4756
TTY1 0006 UMQ 0001 XL9 4737
TT0 0221 UNEXT 0065 XL90 4732
TT1 0223 UNIT1 0001 XL91 5022
TT1LST 0000 UNIT2 0003 XMONIT 0600
TT2 0232 UNIT3 0003 XREADP 2721
TT3 0237 UNIT4 0004 XTABLS 4646
TXTOUT 2127 UNIT5 0005 XWRITE 2731
TXTPNT 2153 UNIT6 0006 YCDF 4666
TXT1 2135 UNIT7 0007 ZADDR 0022
T1BACK 0210 UNUMB 0036 ZBLK 0021
T1CHAR 0215 UPC 0003 ZBREAK 0122
T1ESCP 0233 USC 0002 ZCNT 0007
T1FILL 0010 USESY1 0001 ZDISPA 0123
T1TCBP 4034 USESY4 0001 ZEROMS 7074
T2BACK 0210 USESY5 0001 ZFSTEX 0040
T2CHAR 0000 USESY6 0001 ZHRDIN 0121
T2ESCP 0233 USESY7 0001 ZLENG 0002
T2FILL 0000 USLOT 0062 ZMYCDF 0034
T3BACK 0210 USR 7700 ZMYCDI 0036
T3CHAR 0000 USRIN 0010 ZMYCIF 0035
T3ESCP 0233 USROUT 0011 ZNAME 0001
T3FILL 0000 USTAT 0000 ZNUM 0023
T4BACK 0210 USW 0007 ZSOFIN 0037
T4CHAR 0000 USYS1 2631 ZTEM1 0021
T4ESCP 0233 USYS2 2631 ZTEM2 0022
T4FILL 0000 USYS3 2631 ZTEM3 0023
T5BACK 0210 USYS4 2631 ZTEM4 0024
T5CHAR 0000 USYS5 2631 ZTEM5 0025
T5ESCP 0233 USYS6 2631 ZTEM6 0026
T5FILL 0000 USYS7 2631 ZTEM7 0027
T6BACK 0210 UTEMP 0010 ZWC 0003
T6CHAR 0000 UTEM2 0011
T6ESCP 0233 UTTY 0060
T6FILL 0000 UWRTR 0033
T7BACK 0210 VERSHI 0267
T7CHAR 0000 VERSLO 0302
T7ESCP 0233 WAIT 0044
T7FILL 0000 WAIT0 0677
UAC 0005 WAIT1 0725
UACCNT 0063 WAIT2 0735
UASEM 0015 WAIT3 0736
UASNAM 1136 X 0020
ERRORS DETECTED: 0
LINKS GENERATED: 0