|
DataMuseum.dkPresents historical artifacts from the history of: RC4000/8000/9000 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about RC4000/8000/9000 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 43008 (0xa800) Types: Rc489kSubCat Names: »adm«
└─⟦00964e8f7⟧ Bits:30007478 RC8000 Dump tape fra HCØ. └─⟦b2ec5d50f⟧ └─⟦this⟧ »adm«
0x0000…0033 (0,) Rc489kSubCatEnt {f00=0x001323, f01=0x000050, f02=0x000059, filename=»orsem «, entry_tail=0-4-0-8-1982-04-21T11:06-disc2-0x0-0x0-0x0-0x0} 0x0033…0066 Rc489kSubCatEnt {f00=0x009053, f01=0x000050, f02=0x000059, filename=»cgbrev «, entry_tail=0-4-0-3-1982-03-25T13:53-disc2-0x0-0x0-0x0-0x0} 0x0066…0099 Rc489kSubCatEnt {f00=0x00c9b3, f01=0x000050, f02=0x000059, filename=»efx «, entry_tail=0-4-0-6-1981-09-09T15:01-disc2-0x0-0x0-0x0-0x0} 0x0099…00cc Rc489kSubCatEnt {f00=0x012223, f01=0x000050, f02=0x000059, filename=»hbrev0 «, entry_tail=0-4-0-5-1982-01-11T13:17-disc2-0x0-0x0-0x0-0x0} 0x00cc…00ff Rc489kSubCatEnt {f00=0x017e9b, f01=0x000050, f02=0x000059, filename=»bbrev0 «, entry_tail=0-4-0-4-1982-01-08T12:46-disc2-0x0-0x0-0x0-0x0} 0x00ff…0132 Rc489kSubCatEnt {f00=0x01b50b, f01=0x000050, f02=0x000059, filename=»budget82 «, entry_tail=0-4-0-6-1982-01-08T12:40-disc2-0x0-0x0-0x0-0x0} 0x0132…0140 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ┆ ┆ 0x0140…0160 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ┆ ┆ […0x6…] 0x0220…0240 ff ff ff ff ff ff ff ff ff ff ff ff ff ff 00 00 04 06 53 fb 00 75 30 00 75 39 66 66 61 67 32 74 ┆ S u0 u9ffag2t┆ 0x0240…0260 78 74 00 00 00 00 00 00 01 64 69 73 63 00 00 00 00 00 00 00 00 7b af 92 00 00 00 00 00 00 00 00 ┆xt disc æ ┆ 0x0260…0280 00 00 00 00 80 63 fb 00 00 00 7f ff fc 70 6c 6f 74 70 6f 69 6e 74 00 00 00 80 00 04 68 63 7c 6c ┆ c plotpoint hcøl┆ 0x0280…02a0 69 62 00 00 00 00 00 00 80 01 64 08 d3 8e 00 00 00 05 30 ea 00 20 00 4d 33 fb 00 00 8c 00 00 95 ┆ib d 0 M3 ┆ 0x02a0…02c0 74 70 6c 6f 74 00 00 00 00 00 00 00 00 00 c4 64 69 73 63 32 00 00 00 00 00 00 00 81 cb 7e 00 00 ┆tplot disc2 ü ┆ 0x02c0…02e0 00 00 00 00 00 a0 00 01 88 00 33 53 fb 00 00 8c 00 00 95 70 6c 6f 74 70 6f 69 6e 74 00 00 00 00 ┆ 3S plotpoint ┆ 0x02e0…02fd 00 02 64 69 73 63 32 00 00 00 00 00 00 00 80 01 64 08 d3 8e 00 00 00 00 40 ea 00 20 00 ┆ disc2 d @ ┆ 0x02fd…0300 0x000006 0x0300…1b00 Data for orsem 0x1b00…2400 (3,) Data for cgbrev 0x2400…3600 (4,) Data for efx 0x3600…4500 (6,) Data for hbrev0 0x4500…5100 Data for bbrev0 0x5100…6300 (9,) Data for budget82 0x6300…6320 (11,) 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 20 20 20 20 73 74 61 72 74 20 6f 66 20 ┆ ; start of ┆ 0x6320…6340 73 65 63 6f 6e 64 61 72 79 20 69 6e 74 65 72 72 75 70 74 20 63 68 61 69 6e 0a 62 33 39 3a 20 62 ┆secondary interrupt chain b39: b┆ 0x6340…6360 33 39 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 20 20 20 20 71 75 65 75 65 20 68 65 61 ┆39 ; queue hea┆ 0x6360…6380 64 3a 20 64 6d 61 20 74 72 61 6e 73 66 65 72 0a 20 20 20 20 20 62 33 39 20 20 20 20 20 20 20 20 ┆d: dma transfer b39 ┆ 0x6380…63a0 20 20 20 20 20 20 20 3b 0a 62 33 30 3a 20 30 2d 30 2d 30 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ; b30: 0-0-0 ┆ 0x63a0…63c0 3b 20 20 20 20 20 65 72 72 6f 72 6c 6f 67 20 70 72 6f 63 0a 62 33 31 3a 20 67 36 36 20 20 20 20 ┆; errorlog proc b31: g66 ┆ 0x63c0…63e0 20 20 20 20 20 20 20 20 20 20 20 3b 20 20 20 20 20 65 72 72 6f 72 6c 6f 67 20 65 6e 74 72 79 0a ┆ ; errorlog entry ┆ 0x63e0…6400 20 20 20 20 20 72 2e 20 28 3a 36 34 2d 6b 2b 32 3a 29 20 3e 20 31 20 3b 20 36 30 2d 36 32 20 72 ┆ r. (:64-k+2:) > 1 ; 60-62 r┆ 0x6400…6420 65 73 65 72 76 65 64 20 66 6f 72 20 74 65 73 74 70 72 6f 67 72 61 6d 73 0a 20 20 20 20 20 61 31 ┆eserved for testprograms a1┆ 0x6420…6440 33 35 3c 31 32 2b 61 31 33 36 20 20 20 20 20 20 3b 20 36 34 3a 20 72 65 6c 65 61 73 65 2c 20 76 ┆35<12+a136 ; 64: release, v┆ 0x6440…6460 65 72 73 69 6f 6e 20 6f 66 20 6d 6f 6e 69 74 6f 72 0a 62 31 3a 20 20 30 20 20 20 20 20 20 20 20 ┆ersion of monitor b1: 0 ┆ 0x6460…6480 20 20 20 20 20 20 20 20 20 3b 20 36 36 3a 20 63 75 72 72 65 6e 74 20 70 72 6f 63 65 73 73 0a 62 ┆ ; 66: current process b┆ 0x6480…64a0 32 3a 20 20 62 32 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 20 20 20 20 74 69 6d 65 ┆2: b2 ; time┆ 0x64a0…64c0 20 73 6c 69 63 65 20 71 75 65 75 65 20 68 65 61 64 3a 20 20 6e 65 78 74 20 70 72 6f 63 65 73 73 ┆ slice queue head: next process┆ 0x64c0…64e0 0a 20 20 20 20 20 62 32 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 20 20 20 20 20 20 ┆ b2 ; ┆ 0x64e0…6500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 61 73 74 20 70 72 6f 63 65 ┆ last proce┆ 0x6500…6520 73 73 0a 62 33 3a 20 20 30 2d 30 2d 30 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 37 32 3a 20 ┆ss b3: 0-0-0 ; 72: ┆ 0x6520…6540 6e 61 6d 65 20 74 61 62 6c 65 20 73 74 61 72 74 0a 62 34 3a 20 20 30 2d 30 2d 30 20 20 20 20 20 ┆name table start b4: 0-0-0 ┆ 0x6540…6560 20 20 20 20 20 20 20 20 3b 20 37 34 3a 20 66 69 72 73 74 20 64 65 76 69 63 65 20 69 6e 20 6e 61 ┆ ; 74: first device in na┆ 0x6560…6580 6d 65 20 74 61 62 6c 65 0a 62 35 3a 20 20 30 2d 30 2d 30 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆me table b5: 0-0-0 ┆ 0x6580…65a0 3b 20 37 36 3a 20 66 69 72 73 74 20 61 72 65 61 20 69 6e 20 6e 61 6d 65 20 74 61 62 6c 65 0a 62 ┆; 76: first area in name table b┆ 0x65a0…65c0 36 3a 20 20 30 2d 30 2d 30 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 37 38 3a 20 66 69 72 73 ┆6: 0-0-0 ; 78: firs┆ 0x65c0…65e0 74 20 69 6e 74 65 72 6e 61 6c 20 69 6e 20 6e 61 6d 65 20 74 61 62 6c 65 0a 62 37 3a 20 20 30 2d ┆t internal in name table b7: 0-┆ 0x65e0…6600 30 2d 30 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 38 30 3a 20 6e 61 6d 65 20 74 61 62 6c 65 ┆0-0 ; 80: name table┆ 0x6600…6620 20 65 6e 64 0a 62 38 3a 20 20 62 38 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 20 20 ┆ end b8: b8 ; ┆ 0x6620…6640 20 20 6d 65 73 73 20 62 75 66 20 70 6f 6f 6c 20 71 75 65 75 65 20 68 65 61 64 3a 20 20 6e 65 78 ┆ mess buf pool queue head: nex┆ 0x6640…6660 74 20 62 75 66 0a 20 20 20 20 20 62 38 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 20 ┆t buf b8 ; ┆ 0x6660…6680 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 61 ┆ la┆ 0x6680…66a0 73 74 20 62 75 66 0a 20 20 20 20 20 30 2d 30 2d 30 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 ┆st buf 0-0-0 ; ┆ 0x66a0…66c0 38 36 3a 20 66 69 72 73 74 20 62 79 74 65 20 6f 66 20 6d 65 73 73 20 62 75 66 20 70 6f 6f 6c 20 ┆86: first byte of mess buf pool ┆ 0x66c0…66e0 61 72 65 61 0a 20 20 20 20 20 30 2d 30 2d 30 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 38 38 ┆area 0-0-0 ; 88┆ 0x66e0…6700 3a 20 6c 61 73 74 20 62 79 74 65 20 20 6f 66 20 6d 65 73 73 20 62 75 66 20 70 6f 6f 6c 20 61 72 ┆: last byte of mess buf pool ar┆ 0x6700…6720 65 61 0a 20 20 20 20 20 61 36 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 39 30 3a 20 ┆ea a6 ; 90: ┆ 0x6720…6740 73 69 7a 65 20 6f 66 20 6d 65 73 73 61 67 65 20 62 75 66 66 65 72 0a 62 32 32 3a 20 30 2d 30 2d ┆size of message buffer b22: 0-0-┆ 0x6740…6760 30 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 39 32 3a 20 66 69 72 73 74 20 64 72 75 6d 20 63 ┆0 ; 92: first drum c┆ 0x6760…6780 68 61 69 6e 20 20 69 6e 20 6e 61 6d 65 20 74 61 62 6c 65 0a 62 32 33 3a 20 30 2d 30 2d 30 20 20 ┆hain in name table b23: 0-0-0 ┆ 0x6780…67a0 20 20 20 20 20 20 20 20 20 20 20 3b 20 39 34 3a 20 66 69 72 73 74 20 64 69 73 63 20 63 68 61 69 ┆ ; 94: first disc chai┆ 0x67a0…67c0 6e 20 20 69 6e 20 6e 61 6d 65 20 74 61 62 6c 65 0a 62 32 34 3a 20 30 2d 30 2d 30 20 20 20 20 20 ┆n in name table b24: 0-0-0 ┆ 0x67c0…67e0 20 20 20 20 20 20 20 20 3b 20 39 36 3a 20 63 68 61 69 6e 20 65 6e 64 20 20 20 20 20 20 20 20 20 ┆ ; 96: chain end ┆ 0x67e0…6800 69 6e 20 6e 61 6d 65 20 74 61 62 6c 65 0a 62 32 35 3a 20 30 20 20 20 20 20 20 20 20 20 20 20 20 ┆in name table b25: 0 ┆ 0x6800…6820 20 20 20 20 20 3b 20 39 38 3a 20 6d 61 69 6e 20 63 61 74 20 63 68 61 69 6e 20 74 61 62 6c 65 0a ┆ ; 98: main cat chain table ┆ 0x6820…6840 20 20 20 20 20 30 2d 30 2d 30 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 28 31 30 30 29 20 6e 6f ┆ 0-0-0 ;(100) no┆ 0x6840…6860 74 20 75 73 65 64 20 3f 3f 3f 0a 62 31 30 3a 20 61 38 35 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆t used ??? b10: a85 ┆ 0x6860…6880 20 20 3b 20 20 20 20 20 6d 61 78 69 6d 75 6d 20 74 69 6d 65 20 73 6c 69 63 65 0a 62 31 31 3a 20 ┆ ; maximum time slice b11: ┆ 0x6880…68a0 30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 31 30 34 3a 20 74 69 6d 65 20 73 6c 69 ┆0 ;104: time sli┆ 0x68a0…68c0 63 65 20 28 6f 66 20 63 75 72 72 65 6e 74 20 70 72 6f 63 65 73 73 29 0a 20 20 20 20 20 30 20 20 ┆ce (of current process) 0 ┆ 0x68c0…68e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 31 30 36 3a 20 7a 65 72 6f 20 28 65 61 72 6c 69 ┆ ;106: zero (earli┆ 0x68e0…6900 65 72 3a 20 20 6d 69 63 72 6f 20 73 65 63 6f 6e 64 73 29 0a 62 31 33 3a 20 30 20 2c 20 30 20 20 ┆er: micro seconds) b13: 0 , 0 ┆ 0x6900…6920 20 20 20 20 20 20 20 20 20 20 20 3b 31 30 38 3a 31 31 30 3a 20 74 69 6d 65 20 28 75 6e 69 74 20 ┆ ;108:110: time (unit ┆ 0x6920…6940 6f 66 20 30 2e 31 20 6d 69 6c 6c 69 20 73 65 63 6f 6e 64 73 29 0a 62 31 34 3a 20 30 20 20 20 20 ┆of 0.1 milli seconds) b14: 0 ┆ 0x6940…6960 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 20 20 20 20 6c 61 73 74 20 73 65 6e 73 65 64 20 63 ┆ ; last sensed c┆ 0x6960…6980 6c 6f 63 6b 20 76 61 6c 75 65 0a 20 20 20 20 20 30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆lock value 0 ┆ 0x6980…69a0 20 20 3b 20 20 20 20 20 28 6e 6f 74 20 75 73 65 64 29 0a 62 31 32 3a 20 30 2d 30 2d 30 20 20 20 ┆ ; (not used) b12: 0-0-0 ┆ 0x69a0…69c0 20 20 20 20 20 20 20 20 20 20 3b 31 31 36 3a 20 6e 75 6d 62 65 72 20 6f 66 20 73 74 6f 72 61 67 ┆ ;116: number of storag┆ 0x69c0…69e0 65 20 62 79 74 65 73 0a 20 20 20 20 20 61 31 31 31 3c 31 32 20 2b 20 61 31 30 39 20 20 20 20 3b ┆e bytes a111<12 + a109 ;┆ 0x69e0…6a00 31 31 38 3a 20 6d 69 6e 20 67 6c 6f 62 61 6c 20 6b 65 79 2c 20 6d 69 6e 20 61 75 78 20 63 61 74 ┆118: min global key, min aux cat┆ 0x6a00…6a20 20 6b 65 79 20 3f 3f 3f 3f 3f 0a 62 31 35 3a 20 30 20 2c 20 30 20 20 20 20 20 20 20 20 20 20 20 ┆ key ????? b15: 0 , 0 ┆ 0x6a20…6a40 20 20 3b 20 20 20 20 20 63 6c 6f 63 6b 63 68 61 6e 67 65 2c 20 61 66 74 65 72 20 73 65 74 20 63 ┆ ; clockchange, after set c┆ 0x6a40…6a60 6c 6f 63 6b 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 20 ┆lock: ; ┆ 0x6a60…6a80 20 20 20 20 20 20 6e 65 77 74 69 6d 65 20 2d 20 6f 6c 64 74 69 6d 65 0a 63 2e 61 34 30 30 2d 31 ┆ newtime - oldtime c.a400-1┆ 0x6a80…6aa0 0a 62 32 37 3a 20 30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 31 32 34 3a 20 66 69 72 ┆ b27: 0 ;124: fir┆ 0x6aa0…6ac0 73 74 20 70 72 6f 63 65 73 73 20 65 78 74 65 6e 73 69 6f 6e 28 63 75 72 29 0a 62 32 38 3a 20 30 ┆st process extension(cur) b28: 0┆ 0x6ac0…6ae0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 31 32 36 3a 20 73 65 63 6f 6e 64 20 70 72 6f ┆ ;126: second pro┆ 0x6ae0…6b00 63 65 73 73 20 65 78 74 65 6e 73 69 6f 6e 28 63 75 72 29 0a 62 31 34 31 3a 30 20 20 20 20 20 20 ┆cess extension(cur) b141:0 ┆ 0x6b00…6b20 20 20 20 20 20 20 20 20 20 20 3b 31 32 38 3a 20 63 6f 72 6f 75 74 69 6e 65 20 74 65 73 74 6f 75 ┆ ;128: coroutine testou┆ 0x6b20…6b40 74 70 75 74 20 61 64 64 72 65 73 73 0a 3b 20 6c 69 6e 6b 73 20 74 6f 20 63 6d 6f 6e 20 70 72 6f ┆tput address ; links to cmon pro┆ 0x6b40…6b60 63 65 64 75 72 65 73 3a 0a 62 31 34 30 3a 63 31 30 30 20 20 20 20 20 20 20 20 20 20 20 20 20 3b ┆cedures: b140:c100 ;┆ 0x6b60…6b80 31 33 30 3a 20 61 64 64 72 65 73 73 20 6f 66 20 63 6d 6f 6e 20 70 72 6f 63 65 64 75 72 65 20 73 ┆130: address of cmon procedure s┆ 0x6b80…6ba0 74 61 72 74 0a 20 20 20 20 20 63 31 30 31 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 31 33 32 3a ┆tart c101 ;132:┆ 0x6ba0…6bc0 20 20 20 20 20 20 20 20 2d 20 27 27 20 2d 20 20 20 20 20 20 20 20 20 20 20 20 20 77 61 69 74 0a ┆ - '' - wait ┆ 0x6bc0…6be0 20 20 20 20 20 63 31 30 32 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 31 33 34 3a 20 20 20 20 20 ┆ c102 ;134: ┆ 0x6be0…6c00 20 20 20 2d 20 27 27 20 2d 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 73 73 0a 20 20 20 20 20 ┆ - '' - pass ┆ 0x6c00…6c20 (12,) 63 31 30 33 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 31 33 36 3a 20 20 20 20 20 20 20 20 2d 20 ┆c103 ;136: - ┆ 0x6c20…6c40 27 27 20 2d 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 73 70 65 63 74 0a 20 20 20 20 20 63 31 ┆'' - inspect c1┆ 0x6c40…6c60 30 34 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 31 33 38 3a 20 20 20 20 20 20 20 20 2d 20 27 27 ┆04 ;138: - ''┆ 0x6c60…6c80 20 2d 20 20 20 20 20 20 20 20 20 20 20 20 20 63 73 65 6e 64 6d 65 73 73 61 67 65 0a 20 20 20 20 ┆ - csendmessage ┆ 0x6c80…6ca0 20 63 31 30 35 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 31 34 30 3a 20 20 20 20 20 20 20 20 2d ┆ c105 ;140: -┆ 0x6ca0…6cc0 20 27 27 20 2d 20 20 20 20 20 20 20 20 20 20 20 20 20 63 77 61 69 74 61 6e 73 77 65 72 0a 20 20 ┆ '' - cwaitanswer ┆ 0x6cc0…6ce0 20 20 20 63 31 30 36 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 31 34 32 3a 20 20 20 20 20 20 20 ┆ c106 ;142: ┆ 0x6ce0…6d00 20 2d 20 27 27 20 2d 20 20 20 20 20 20 20 20 20 20 20 20 20 61 6e 73 77 65 72 5f 61 72 72 69 76 ┆ - '' - answer_arriv┆ 0x6d00…6d20 65 64 0a 20 20 20 20 20 63 31 30 37 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 31 34 34 3a 20 20 ┆ed c107 ;144: ┆ 0x6d20…6d40 20 20 20 20 20 20 2d 20 27 27 20 2d 20 20 20 20 20 20 20 20 20 20 20 20 20 73 69 67 6e 61 6c 5f ┆ - '' - signal_┆ 0x6d40…6d60 62 69 6e 61 72 79 0a 20 20 20 20 20 63 31 30 38 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 31 34 ┆binary c108 ;14┆ 0x6d60…6d80 36 3a 20 20 20 20 20 20 20 20 2d 20 27 27 20 2d 20 20 20 20 20 20 20 20 20 20 20 20 20 73 69 67 ┆6: - '' - sig┆ 0x6d80…6da0 6e 61 6c 5f 73 65 6d 0a 20 20 20 20 20 63 31 30 39 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 31 ┆nal_sem c109 ;1┆ 0x6da0…6dc0 34 38 3a 20 20 20 20 20 20 20 20 2d 20 27 27 20 2d 20 20 20 20 20 20 20 20 20 20 20 20 20 77 61 ┆48: - '' - wa┆ 0x6dc0…6de0 69 74 5f 73 65 6d 0a 20 20 20 20 20 63 31 31 30 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 31 35 ┆it_sem c110 ;15┆ 0x6de0…6e00 30 3a 20 20 20 20 20 20 20 20 2d 20 27 27 20 2d 20 20 20 20 20 20 20 20 20 20 20 20 20 73 69 67 ┆0: - '' - sig┆ 0x6e00…6e20 6e 61 6c 5f 63 68 61 69 6e 65 64 0a 20 20 20 20 20 63 31 31 31 20 20 20 20 20 20 20 20 20 20 20 ┆nal_chained c111 ┆ 0x6e20…6e40 20 20 3b 31 35 32 3a 20 20 20 20 20 20 20 20 2d 20 27 27 20 2d 20 20 20 20 20 20 20 20 20 20 20 ┆ ;152: - '' - ┆ 0x6e40…6e60 20 20 69 6e 73 70 65 63 74 5f 63 68 61 69 6e 65 64 0a 20 20 20 20 20 63 31 31 32 20 20 20 20 20 ┆ inspect_chained c112 ┆ 0x6e60…6e80 20 20 20 20 20 20 20 20 3b 31 35 34 3a 20 20 20 20 20 20 20 20 2d 20 27 27 20 2d 20 20 20 20 20 ┆ ;154: - '' - ┆ 0x6e80…6ea0 20 20 20 20 20 20 20 20 77 61 69 74 5f 63 68 61 69 6e 65 64 0a 20 20 20 20 20 63 31 31 33 20 20 ┆ wait_chained c113 ┆ 0x6ea0…6ec0 20 20 20 20 20 20 20 20 20 20 20 3b 31 35 36 3a 20 20 20 20 20 20 20 20 2d 20 27 27 20 2d 20 20 ┆ ;156: - '' - ┆ 0x6ec0…6ee0 20 20 20 20 20 20 20 20 20 20 20 73 65 6d 5f 73 65 6e 64 5f 6d 65 73 73 0a 20 20 20 20 20 63 31 ┆ sem_send_mess c1┆ 0x6ee0…6f00 31 34 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 31 35 38 3a 20 20 20 20 20 20 20 20 2d 20 27 27 ┆14 ;158: - ''┆ 0x6f00…6f20 20 2d 20 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6d 5f 61 6e 73 77 65 72 5f 70 72 6f 63 0a 20 ┆ - sem_answer_proc ┆ 0x6f20…6f40 20 20 20 20 63 31 31 35 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 31 36 30 3a 20 20 20 20 20 20 ┆ c115 ;160: ┆ 0x6f40…6f60 20 20 2d 20 27 27 20 2d 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 65 73 73 61 67 65 5f 72 65 63 ┆ - '' - message_rec┆ 0x6f60…6f80 65 69 76 65 64 0a 20 20 20 20 20 63 31 31 36 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 31 36 32 ┆eived c116 ;162┆ 0x6f80…6fa0 3a 20 20 20 20 20 20 20 20 2d 20 27 27 20 2d 20 20 20 20 20 20 20 20 20 20 20 20 20 74 69 6d 65 ┆: - '' - time┆ 0x6fa0…6fc0 72 5f 6d 65 73 73 61 67 65 0a 20 20 20 20 20 63 31 31 37 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆r_message c117 ┆ 0x6fc0…6fe0 3b 31 36 34 3a 20 20 20 20 20 20 20 20 2d 20 27 27 20 2d 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆;164: - '' - ┆ 0x6fe0…7000 74 69 6d 65 72 5f 73 63 61 6e 0a 20 20 20 20 20 63 31 31 38 20 20 20 20 20 20 20 20 20 20 20 20 ┆timer_scan c118 ┆ 0x7000…7020 20 3b 31 36 36 3a 20 20 20 20 20 20 20 20 2d 20 27 27 20 2d 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ;166: - '' - ┆ 0x7020…7040 20 63 72 65 67 72 65 74 6d 65 73 73 61 67 65 0a 20 20 20 20 20 63 31 31 39 20 20 20 20 20 20 20 ┆ cregretmessage c119 ┆ 0x7040…7060 20 20 20 20 20 20 3b 31 36 38 3a 20 20 20 20 20 20 20 20 2d 20 27 27 20 2d 20 20 20 20 20 20 20 ┆ ;168: - '' - ┆ 0x7060…7080 20 20 20 20 20 20 75 73 65 72 20 74 65 73 74 6f 75 74 70 75 74 0a 7a 2e 0a 62 32 36 20 3d 20 62 ┆ user testoutput z. b26 = b┆ 0x7080…70a0 35 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 75 73 65 20 61 72 65 61 20 70 72 6f 63 65 ┆5 ; use area proce┆ 0x70a0…70c0 73 73 65 73 20 61 73 20 70 73 65 75 64 6f 20 70 72 6f 63 65 73 73 65 73 0a 30 2c 72 2e 28 3a 36 ┆sses as pseudo processes 0,r.(:6┆ 0x70c0…70e0 36 3c 31 20 2d 6b 20 2b 32 3a 29 20 3e 20 31 20 3b 0a 62 35 36 3a 20 30 2c 72 2e 61 33 35 30 20 ┆6<1 -k +2:) > 1 ; b56: 0,r.a350 ┆ 0x70e0…7100 20 20 20 20 20 20 20 20 20 3b 20 20 20 20 63 75 72 72 65 6e 74 20 70 72 6f 63 65 73 73 20 28 63 ┆ ; current process (c┆ 0x7100…7120 70 75 28 69 29 29 20 69 3d 31 2c 2e 2e 2e 2c 6c 61 73 74 20 63 70 75 0a 0a 3b 20 64 65 66 69 6e ┆pu(i)) i=1,...,last cpu ; defin┆ 0x7120…7140 69 74 69 6f 6e 20 6f 66 20 67 65 6e 65 72 61 6c 20 72 65 67 69 73 74 65 72 73 20 69 6e 20 72 63 ┆ition of general registers in rc┆ 0x7140…7160 38 30 30 30 0a 0a 62 39 30 20 3d 20 38 2e 31 34 20 2a 20 32 20 20 20 20 20 20 20 20 20 3b 20 69 ┆8000 b90 = 8.14 * 2 ; i┆ 0x7160…7180 6c 65 76 63 20 20 3a 20 69 6e 74 65 72 72 75 70 74 20 6c 65 76 65 6c 20 6c 69 6d 69 74 20 63 6f ┆levc : interrupt level limit co┆ 0x7180…71a0 70 79 0a 62 39 31 20 3d 20 38 2e 31 35 20 2a 20 32 20 20 20 20 20 20 20 20 20 3b 20 69 6e 66 20 ┆py b91 = 8.15 * 2 ; inf ┆ 0x71a0…71c0 20 20 20 3a 20 63 75 72 72 65 6e 74 20 69 6e 74 65 72 72 75 70 74 20 73 74 61 63 6b 20 65 6c 65 ┆ : current interrupt stack ele┆ 0x71c0…71e0 6d 65 6e 74 20 61 64 64 72 65 73 73 0a 62 39 32 20 3d 20 38 2e 31 37 20 2a 20 32 20 20 20 20 20 ┆ment address b92 = 8.17 * 2 ┆ 0x71e0…7200 20 20 20 20 3b 20 73 69 7a 65 20 20 20 3a 20 74 6f 70 20 61 76 61 69 6c 61 62 6c 65 20 63 6f 72 ┆ ; size : top available cor┆ 0x7200…7220 65 20 61 64 64 72 65 73 73 0a 62 39 33 20 3d 20 38 2e 32 30 20 2a 20 32 20 20 20 20 20 20 20 20 ┆e address b93 = 8.20 * 2 ┆ 0x7220…7240 20 3b 20 6d 6f 6e 74 6f 70 20 3a 20 31 20 3c 20 31 31 20 2d 20 74 6f 70 20 6d 6f 6e 69 74 6f 72 ┆ ; montop : 1 < 11 - top monitor┆ 0x7240…7260 20 70 72 6f 63 65 64 75 72 65 20 6e 75 6d 62 65 72 0a 62 39 34 20 3d 20 38 2e 36 32 20 2a 20 32 ┆ procedure number b94 = 8.62 * 2┆ 0x7260…7280 20 20 20 20 20 20 20 20 20 3b 20 63 6c 6f 63 6b 0a 62 39 35 20 3d 20 38 2e 35 37 20 2a 20 32 20 ┆ ; clock b95 = 8.57 * 2 ┆ 0x7280…72a0 20 20 20 20 20 20 20 20 3b 20 69 72 20 20 20 20 20 3a 20 75 73 65 64 20 74 6f 20 63 6c 65 61 72 ┆ ; ir : used to clear┆ 0x72a0…72c0 20 73 65 6c 65 63 74 65 64 20 62 69 74 73 20 69 6e 20 69 6e 74 65 72 72 75 70 74 20 72 65 67 0a ┆ selected bits in interrupt reg ┆ 0x72c0…72e0 62 39 37 20 3d 20 38 2e 36 30 20 2a 20 32 20 20 20 20 20 20 20 20 20 3b 20 64 73 77 72 20 20 20 ┆b97 = 8.60 * 2 ; dswr ┆ 0x72e0…7300 3a 20 64 61 74 61 20 73 77 69 74 68 65 73 0a 62 39 38 20 3d 20 38 2e 36 31 20 2a 20 32 20 20 20 ┆: data swithes b98 = 8.61 * 2 ┆ 0x7300…7320 20 20 20 20 20 20 3b 20 72 65 67 73 65 6c 20 3a 20 72 65 67 69 73 74 65 72 20 73 77 69 74 68 65 ┆ ; regsel : register swithe┆ 0x7320…7340 73 0a 62 39 39 20 3d 20 38 2e 36 30 20 2a 20 32 20 20 20 20 20 20 20 20 20 3b 20 64 69 73 70 6c ┆s b99 = 8.60 * 2 ; displ┆ 0x7340…7360 61 79 0a 3b 0a 62 31 30 30 3d 20 38 2e 32 31 2a 32 20 20 20 20 20 20 20 20 20 3b 20 63 70 75 6b ┆ay ; b100= 8.21*2 ; cpuk┆ 0x7360…7380 69 6e 64 3a 20 30 3a 20 20 2f 34 35 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ind: 0: /45 ┆ 0x7380…73a0 20 20 3b 20 20 20 20 20 20 20 20 20 2d 31 3a 20 20 2f 31 35 2c 20 2f 32 35 2c 20 2f 33 35 0a 20 ┆ ; -1: /15, /25, /35 ┆ 0x73a0…73c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 20 20 20 20 20 20 20 20 35 30 ┆ ; 50┆ 0x73c0…73e0 3a 20 20 2f 35 30 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 20 20 ┆: /50 ; ┆ 0x73e0…7400 20 20 20 20 20 20 35 35 3a 20 20 2f 35 35 0a 0a 3b 20 64 65 66 69 6e 69 74 69 6f 6e 20 6f 66 20 ┆ 55: /55 ; definition of ┆ 0x7400…7420 69 6e 74 65 72 72 75 70 74 20 73 74 61 63 6b 2e 0a 3b 20 70 61 72 61 6d 65 74 65 72 73 20 61 72 ┆interrupt stack. ; parameters ar┆ 0x7420…7440 65 20 72 65 6c 61 74 69 76 65 20 74 6f 20 62 61 73 65 20 6f 66 20 73 74 61 63 6b 20 65 6c 65 6d ┆e relative to base of stack elem┆ 0x7440…7460 65 6e 74 20 28 69 2e 65 2e 20 31 2c 33 2c 35 2c 2e 2e 29 0a 0a 62 2e 6a 30 0a 6a 30 3d 2d 31 20 ┆ent (i.e. 1,3,5,..) b.j0 j0=-1 ┆ 0x7460…7480 20 20 2c 20 20 6a 30 3d 6a 30 2b 32 20 20 3b 20 20 20 62 61 73 65 20 6f 66 20 73 74 61 63 6b 20 ┆ , j0=j0+2 ; base of stack ┆ 0x7480…74a0 65 6c 65 6d 65 6e 74 0a 0a 61 33 32 36 3d 6a 30 20 2c 20 20 6a 30 3d 6a 30 2b 32 20 20 3b 20 20 ┆element a326=j0 , j0=j0+2 ; ┆ 0x74a0…74c0 20 20 72 65 67 64 75 6d 70 0a 61 33 32 37 3d 6a 30 20 2c 20 20 6a 30 3d 6a 30 2b 32 20 20 3b 20 ┆ regdump a327=j0 , j0=j0+2 ; ┆ 0x74c0…74e0 20 20 20 65 78 63 65 70 74 69 6f 6e 20 72 6f 75 74 69 6e 65 0a 61 33 32 38 3d 6a 30 20 2c 20 20 ┆ exception routine a328=j0 , ┆ 0x74e0…7500 6a 30 3d 6a 30 2b 32 20 20 3b 20 20 20 20 65 73 63 61 70 65 20 72 6f 75 74 69 6e 65 0a 61 33 32 ┆j0=j0+2 ; escape routine a32┆ 0x7500…7520 (13,) 39 3d 6a 30 20 2c 20 20 6a 30 3d 6a 30 2b 32 20 20 3b 20 20 20 20 6d 6f 6e 69 74 6f 72 20 63 61 ┆9=j0 , j0=j0+2 ; monitor ca┆ 0x7520…7540 6c 6c 20 65 6e 74 72 79 0a 61 33 33 30 3d 6a 30 20 2c 20 20 6a 30 3d 6a 30 2b 32 20 20 3b 20 20 ┆ll entry a330=j0 , j0=j0+2 ; ┆ 0x7540…7560 20 20 65 78 74 65 72 6e 61 6c 20 69 6e 74 65 72 72 75 70 74 20 65 6e 74 72 79 0a 61 33 33 31 3d ┆ external interrupt entry a331=┆ 0x7560…7580 6a 30 20 2c 20 20 6a 30 3d 6a 30 2b 32 20 20 3b 20 20 20 20 69 6e 74 65 72 72 75 70 74 20 6c 69 ┆j0 , j0=j0+2 ; interrupt li┆ 0x7580…75a0 6d 69 74 73 2c 20 64 69 73 61 62 6c 65 64 2f 65 6e 61 62 6c 65 64 0a 0a 61 33 32 35 3d 6a 30 2d ┆mits, disabled/enabled a325=j0-┆ 0x75a0…75c0 61 33 32 36 20 20 20 20 20 20 20 20 3b 20 20 73 69 7a 65 20 6f 66 20 69 6e 74 65 72 72 75 70 74 ┆a326 ; size of interrupt┆ 0x75c0…75e0 20 73 74 61 63 6b 20 65 6c 65 6d 65 6e 74 0a 0a 65 2e 0a 0a 3b 20 65 78 74 65 72 6e 61 6c 20 69 ┆ stack element e. ; external i┆ 0x75e0…7600 6e 74 65 72 72 75 70 74 20 65 6e 74 72 79 3a 0a 3b 0a 3b 20 77 68 65 6e 20 61 6e 20 65 78 74 65 ┆nterrupt entry: ; ; when an exte┆ 0x7600…7620 72 6e 61 6c 20 69 6e 74 65 72 72 75 70 74 20 6f 63 63 75 72 73 2c 20 6f 72 20 77 68 65 6e 20 27 ┆rnal interrupt occurs, or when '┆ 0x7620…7640 75 73 65 72 20 65 78 63 65 70 74 69 6f 6e 20 66 69 72 73 74 27 0a 3b 20 20 20 20 6f 72 20 27 75 ┆user exception first' ; or 'u┆ 0x7640…7660 73 65 72 20 65 73 63 61 70 65 20 66 69 72 73 74 27 20 61 72 65 20 7a 65 72 6f 2c 20 74 68 65 20 ┆ser escape first' are zero, the ┆ 0x7660…7680 63 70 75 20 77 69 6c 6c 20 73 61 76 65 20 61 6c 6c 20 72 65 67 69 73 74 65 72 73 0a 3b 20 20 20 ┆cpu will save all registers ; ┆ 0x7680…76a0 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 72 6f 63 65 73 73 20 64 65 73 63 72 69 74 69 ┆ in the current process descriti┆ 0x76a0…76c0 6f 6e 2e 0a 3b 20 65 78 69 74 20 69 73 20 6d 61 64 65 20 74 6f 20 68 65 72 65 20 77 69 74 68 3a ┆on. ; exit is made to here with:┆ 0x76c0…76e0 0a 3b 20 20 20 20 77 31 20 3d 20 74 6f 70 20 72 65 67 69 73 74 65 72 20 64 75 6d 70 0a 3b 20 20 ┆ ; w1 = top register dump ; ┆ 0x76e0…7700 20 20 77 32 20 3d 20 32 20 2a 20 69 6e 74 65 72 72 75 70 74 20 6e 75 6d 62 65 72 0a 3b 20 20 20 ┆ w2 = 2 * interrupt number ; ┆ 0x7700…7720 20 65 78 20 3d 20 30 0a 0a 63 31 3a 20 20 77 61 20 20 77 32 20 20 20 20 20 62 30 20 20 20 20 20 ┆ ex = 0 c1: wa w2 b0 ┆ 0x7720…7740 3b 20 20 20 20 6d 6f 6e 66 75 6e 63 20 3a 3d 20 63 61 75 73 65 20 2b 20 69 6e 74 2e 74 61 62 6c ┆; monfunc := cause + int.tabl┆ 0x7740…7760 65 2e 62 61 73 65 20 2d 20 6d 6f 6e 2e 70 72 6f 63 2e 62 61 73 65 3b 0a 0a 3b 20 6d 6f 6e 69 74 ┆e.base - mon.proc.base; ; monit┆ 0x7760…7780 6f 72 20 63 61 6c 6c 20 65 6e 74 72 79 3a 0a 3b 0a 3b 20 69 66 20 74 68 65 20 63 75 72 72 65 6e ┆or call entry: ; ; if the curren┆ 0x7780…77a0 74 20 70 72 6f 63 65 73 73 20 65 78 65 63 75 74 65 73 20 61 20 6d 6f 6e 74 6f 72 20 63 61 6c 6c ┆t process executes a montor call┆ 0x77a0…77c0 2c 20 74 68 65 20 63 70 75 20 77 69 6c 6c 0a 3b 20 20 20 20 73 61 76 65 20 61 6c 6c 20 74 68 65 ┆, the cpu will ; save all the┆ 0x77c0…77e0 20 72 65 67 69 73 74 65 72 73 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 72 6f 63 65 73 ┆ registers in the current proces┆ 0x77e0…7800 73 20 64 65 73 63 72 69 70 74 69 6f 6e 2e 0a 3b 20 65 78 69 74 20 69 73 20 6d 61 64 65 20 74 6f ┆s description. ; exit is made to┆ 0x7800…7820 20 68 65 72 65 20 77 69 74 68 3a 0a 3b 20 20 20 20 77 31 20 3d 20 74 6f 70 20 72 65 67 69 73 74 ┆ here with: ; w1 = top regist┆ 0x7820…7840 65 72 20 64 75 6d 70 0a 3b 20 20 20 20 77 32 20 3d 20 6d 6f 6e 69 74 6f 72 20 66 75 6e 63 74 69 ┆er dump ; w2 = monitor functi┆ 0x7840…7860 6f 6e 0a 3b 20 20 20 20 65 78 20 3d 20 30 0a 0a 63 30 3a 0a 20 20 20 20 20 6a 6c 20 20 77 33 20 ┆on ; ex = 0 c0: jl w3 ┆ 0x7860…7880 20 20 20 20 64 33 35 20 20 20 20 3b 20 20 20 20 73 74 6f 70 20 63 70 75 28 69 29 2c 20 69 3d 31 ┆ d35 ; stop cpu(i), i=1┆ 0x7880…78a0 2c 20 20 20 2c 6c 61 73 74 20 63 70 75 3b 0a 20 20 20 20 20 61 6c 20 20 77 31 20 20 78 31 2d 61 ┆, ,last cpu; al w1 x1-a┆ 0x78a0…78c0 31 37 38 20 20 20 3b 20 20 20 20 77 31 20 3a 3d 20 63 75 72 72 65 6e 74 20 70 72 6f 63 65 73 73 ┆178 ; w1 := current process┆ 0x78c0…78e0 3b 0a 20 20 20 20 20 6a 6c 2e 20 20 20 20 28 78 32 2b 62 31 36 2e 29 20 20 3b 20 20 20 20 73 77 ┆; jl. (x2+b16.) ; sw┆ 0x78e0…7900 69 74 63 68 20 6f 75 74 20 74 68 72 6f 75 67 68 20 69 6e 74 2e 74 61 62 6c 65 20 6f 72 20 6d 6f ┆itch out through int.table or mo┆ 0x7900…7920 6e 70 72 6f 63 2e 74 61 62 6c 65 3b 0a 0a 3b 20 73 65 63 6f 6e 64 20 6c 65 76 65 6c 20 65 78 74 ┆nproc.table; ; second level ext┆ 0x7920…7940 65 72 6e 61 6c 20 69 6e 74 65 72 72 75 70 74 20 65 6e 74 72 79 3a 0a 3b 0a 3b 20 65 78 69 74 20 ┆ernal interrupt entry: ; ; exit ┆ 0x7940…7960 69 73 20 6d 61 64 65 20 74 6f 20 68 65 72 65 20 77 69 74 68 3a 0a 3b 20 20 20 77 31 20 3d 20 74 ┆is made to here with: ; w1 = t┆ 0x7960…7980 6f 70 20 72 65 67 69 73 74 65 72 20 64 75 6d 70 0a 3b 20 20 20 77 32 20 3d 20 32 20 2a 20 69 6e ┆op register dump ; w2 = 2 * in┆ 0x7980…79a0 74 65 72 72 75 70 74 20 6e 75 6d 62 65 72 0a 0a 63 38 3a 20 20 73 6e 20 20 77 32 20 20 20 20 20 ┆terrupt number c8: sn w2 ┆ 0x79a0…79c0 32 2a 36 20 20 20 20 3b 20 20 20 69 66 20 63 61 75 73 65 20 3d 20 70 6f 77 65 72 66 61 69 6c 20 ┆2*6 ; if cause = powerfail ┆ 0x79c0…79e0 74 68 65 6e 0a 20 20 20 20 20 6a 6c 20 20 20 20 20 20 20 20 20 63 36 20 20 20 20 20 3b 20 20 20 ┆then jl c6 ; ┆ 0x79e0…7a00 20 20 20 67 6f 74 6f 20 70 6f 77 65 72 20 66 61 69 6c 20 72 6f 75 74 69 6e 65 3b 0a 20 20 20 20 ┆ goto power fail routine; ┆ 0x7a00…7a20 20 6a 6c 20 20 20 20 20 20 20 20 2d 33 3c 31 20 20 20 20 3b 20 20 20 20 68 61 6c 74 3b 0a 0a 3b ┆ jl -3<1 ; halt; ;┆ 0x7a20…7a40 20 70 72 6f 67 72 61 6d 20 65 72 72 6f 72 73 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 ┆ program errors in the current p┆ 0x7a40…7a60 72 6f 63 65 73 73 20 61 72 65 20 74 72 61 6e 73 66 65 72 72 65 64 20 74 6f 20 68 65 72 65 2c 0a ┆rocess are transferred to here, ┆ 0x7a60…7a80 3b 20 20 20 20 28 61 73 20 65 78 74 65 72 6e 61 6c 20 69 6e 74 65 72 72 75 70 74 73 29 3a 0a 3b ┆; (as external interrupts): ;┆ 0x7a80…7aa0 0a 3b 20 77 31 20 3d 20 63 75 72 0a 63 32 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ; w1 = cur c2: ┆ 0x7aa0…7ac0 20 20 20 3b 20 69 6e 74 65 72 6e 61 6c 20 69 6e 74 65 72 72 75 70 74 73 2c 20 6f 76 65 72 66 6c ┆ ; internal interrupts, overfl┆ 0x7ac0…7ae0 6f 77 2c 20 73 70 69 6c 6c 2c 20 65 73 63 61 70 65 20 65 72 72 6f 72 73 3a 0a 63 33 3a 20 20 20 ┆ow, spill, escape errors: c3: ┆ 0x7ae0…7b00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 6d 6f 6e 69 74 6f 72 20 62 75 67 73 20 ┆ ; monitor bugs ┆ 0x7b00…7b20 28 69 2e 65 2e 20 65 78 63 65 70 74 69 6f 6e 2d 20 6f 72 20 65 73 63 61 70 65 2d 61 64 64 72 65 ┆(i.e. exception- or escape-addre┆ 0x7b20…7b40 73 73 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 20 20 ┆sses ; ┆ 0x7b40…7b60 20 20 20 20 20 20 20 20 20 20 20 20 6f 75 74 73 69 64 65 20 77 72 69 74 65 2d 6c 69 6d 69 74 73 ┆ outside write-limits┆ 0x7b60…7b80 20 6f 66 20 70 72 6f 63 65 73 73 29 0a 63 34 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ of process) c4: ┆ 0x7b80…7ba0 20 20 20 20 3b 20 62 75 73 20 65 72 72 6f 72 20 69 6e 20 6f 70 65 72 61 6e 64 20 74 72 61 6e 73 ┆ ; bus error in operand trans┆ 0x7ba0…7bc0 66 65 72 3a 20 20 28 6e 6f 20 73 74 72 61 74 65 67 79 20 79 65 74 29 0a 63 35 3a 20 20 20 20 20 ┆fer: (no strategy yet) c5: ┆ 0x7bc0…7be0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 62 75 73 20 65 72 72 6f 72 20 69 6e 20 69 6e ┆ ; bus error in in┆ 0x7be0…7c00 73 74 72 75 63 74 69 6f 6e 20 66 65 74 63 68 3a 20 28 2d 20 20 20 20 20 2d 20 20 20 20 20 20 2d ┆struction fetch: (- - -┆ 0x7c00…7c20 20 29 0a 20 20 20 20 20 6a 6c 20 20 77 32 20 20 20 20 28 62 33 31 29 20 20 20 3b 20 63 61 6c 6c ┆ ) jl w2 (b31) ; call┆ 0x7c20…7c40 20 65 72 72 6f 72 6c 6f 67 0a 20 20 20 20 20 61 6c 20 20 77 30 20 20 20 20 20 61 39 36 20 20 20 ┆ errorlog al w0 a96 ┆ 0x7c40…7c60 20 3b 20 20 20 20 73 74 61 74 65 20 3a 3d 20 72 75 6e 6e 69 6e 67 20 61 66 74 65 72 20 65 72 72 ┆ ; state := running after err┆ 0x7c60…7c80 6f 72 3b 0a 20 20 20 20 20 6a 6c 20 20 77 33 20 20 20 20 20 64 39 20 20 20 20 20 3b 20 20 20 20 ┆or; jl w3 d9 ; ┆ 0x7c80…7ca0 72 65 6d 6f 76 65 20 69 6e 74 65 72 6e 61 6c 28 63 75 72 2c 20 72 75 6e 6e 69 6e 67 20 61 66 74 ┆remove internal(cur, running aft┆ 0x7ca0…7cc0 65 72 20 65 72 72 6f 72 29 3b 0a 20 20 20 20 20 6a 6c 20 20 20 20 20 20 20 20 20 63 39 39 20 20 ┆er error); jl c99 ┆ 0x7cc0…7ce0 20 20 3b 20 20 20 20 67 6f 74 6f 20 69 6e 74 65 72 72 75 70 74 20 72 65 74 75 72 6e 3b 0a 0a 3b ┆ ; goto interrupt return; ;┆ 0x7ce0…7d00 20 70 61 72 61 6d 65 74 65 72 20 65 72 72 6f 72 73 20 69 6e 20 6d 6f 6e 69 74 6f 72 20 63 61 6c ┆ parameter errors in monitor cal┆ 0x7d00…7d20 6c 3a 0a 3b 0a 3b 20 61 6c 6c 20 6d 6f 6e 69 74 6f 72 20 70 72 6f 63 65 64 75 72 65 73 20 63 68 ┆l: ; ; all monitor procedures ch┆ 0x7d20…7d40 65 63 6b 20 74 68 61 74 20 74 68 65 20 70 61 72 61 6d 65 74 65 72 73 20 61 72 65 0a 3b 20 20 20 ┆eck that the parameters are ; ┆ 0x7d40…7d60 20 77 69 74 68 69 6e 20 63 65 72 74 61 69 6e 20 6c 69 6d 69 74 73 2e 0a 3b 20 69 66 20 74 68 65 ┆ within certain limits. ; if the┆ 0x7d60…7d80 20 70 61 72 61 6d 65 74 65 72 73 20 61 72 65 20 77 72 6f 6e 67 2c 20 74 68 65 20 63 61 6c 6c 69 ┆ parameters are wrong, the calli┆ 0x7d80…7da0 6e 67 20 70 72 6f 63 65 73 73 20 69 73 20 62 72 65 61 6b 27 65 64 2e 0a 3b 0a 3b 20 28 61 6c 6c ┆ng process is break'ed. ; ; (all┆ 0x7da0…7dc0 20 72 65 67 73 20 69 72 72 65 6c 6c 65 76 61 6e 74 29 0a 0a 62 2e 20 6a 31 30 20 77 2e 20 20 20 ┆ regs irrellevant) b. j10 w. ┆ 0x7dc0…7de0 20 20 20 20 20 20 20 20 20 20 20 3b 0a 3b 20 64 65 66 69 6e 69 74 69 6e 20 6f 66 20 65 78 63 65 ┆ ; ; definitin of exce┆ 0x7de0…7e00 70 74 69 6f 6e 20 72 65 67 64 75 6d 70 3a 0a 6a 30 20 3d 20 61 32 39 20 2d 20 61 32 38 20 20 20 ┆ption regdump: j0 = a29 - a28 ┆ 0x7e00…7e20 (14,) 20 20 20 20 20 20 3b 20 77 30 2c 20 77 31 0a 6a 31 20 3d 20 61 33 31 20 2d 20 61 32 38 20 20 20 ┆ ; w0, w1 j1 = a31 - a28 ┆ 0x7e20…7e40 20 20 20 20 20 20 3b 20 77 32 2c 20 77 33 0a 6a 32 20 3d 20 61 33 33 20 2d 20 61 32 38 20 20 20 ┆ ; w2, w3 j2 = a33 - a28 ┆ 0x7e40…7e60 20 20 20 20 20 20 3b 20 73 74 61 74 75 73 2c 20 69 63 0a 6a 33 20 3d 20 61 31 37 37 2d 20 61 32 ┆ ; status, ic j3 = a177- a2┆ 0x7e60…7e80 38 20 20 20 20 20 20 20 20 20 3b 20 63 61 75 73 65 2c 20 73 62 0a 61 31 38 30 20 3d 20 6a 33 20 ┆8 ; cause, sb a180 = j3 ┆ 0x7e80…7ea0 2b 20 32 20 20 20 20 20 20 20 20 20 20 3b 20 74 6f 70 20 6f 66 20 65 78 63 65 70 74 69 6f 6e 20 ┆+ 2 ; top of exception ┆ 0x7ea0…7ec0 72 65 67 64 75 6d 70 20 3d 20 6e 65 77 20 72 65 6c 20 69 63 0a 0a 63 32 39 3a 20 20 20 20 20 20 ┆regdump = new rel ic c29: ┆ 0x7ec0…7ee0 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 69 6e 74 65 72 6e 61 6c 20 33 3a 0a 20 20 20 20 20 ┆ ; internal 3: ┆ 0x7ee0…7f00 72 6c 20 20 77 31 20 20 20 20 20 62 31 20 20 20 20 20 3b 0a 20 20 20 20 20 61 6c 20 20 77 33 20 ┆rl w1 b1 ; al w3 ┆ 0x7f00…7f20 20 20 20 20 36 20 20 20 20 20 20 3b 0a 20 20 20 20 20 72 73 20 20 77 33 20 20 78 31 2b 61 31 37 ┆ 6 ; rs w3 x1+a17┆ 0x7f20…7f40 36 20 20 20 3b 20 20 20 20 63 61 75 73 65 20 28 63 75 72 29 20 3a 3d 20 36 3b 20 69 2e 65 2e 20 ┆6 ; cause (cur) := 6; i.e. ┆ 0x7f40…7f60 6d 6f 6e 69 74 6f 72 20 63 61 6c 6c 20 62 72 65 61 6b 3b 0a 0a 20 20 20 20 20 72 6c 20 20 77 32 ┆monitor call break; rl w2┆ 0x7f60…7f80 20 20 78 31 2b 61 32 37 20 20 20 20 3b 20 20 20 20 77 32 20 3a 3d 20 65 78 63 65 70 74 69 6f 6e ┆ x1+a27 ; w2 := exception┆ 0x7f80…7fa0 20 61 64 64 72 65 73 73 20 28 63 75 72 29 3b 0a 20 20 20 20 20 73 6e 20 20 77 32 20 20 20 20 20 ┆ address (cur); sn w2 ┆ 0x7fa0…7fc0 30 20 20 20 20 20 20 3b 20 20 20 20 69 66 20 65 78 63 65 70 74 69 6f 6e 20 61 64 64 72 65 73 73 ┆0 ; if exception address┆ 0x7fc0…7fe0 20 3d 20 30 20 74 68 65 6e 0a 20 20 20 20 20 6a 6c 20 20 20 20 20 20 20 20 20 63 32 20 20 20 20 ┆ = 0 then jl c2 ┆ 0x7fe0…8000 20 3b 20 20 20 20 20 20 67 6f 74 6f 20 69 6e 74 65 72 6e 61 6c 20 69 6e 74 65 72 72 75 70 74 3b ┆ ; goto internal interrupt;┆ 0x8000…8020 0a 20 20 20 20 20 61 6c 20 20 77 33 20 20 20 20 78 32 20 20 20 20 20 20 3b 20 73 61 76 65 20 77 ┆ al w3 x2 ; save w┆ 0x8020…8040 32 20 61 6e 64 0a 20 20 20 20 20 6a 6c 20 20 77 32 20 20 20 20 28 62 33 31 29 20 20 20 3b 20 63 ┆2 and jl w2 (b31) ; c┆ 0x8040…8060 61 6c 6c 20 65 72 72 6f 72 6c 6f 67 0a 20 20 20 20 20 61 6c 20 20 77 32 20 20 20 20 78 33 20 20 ┆all errorlog al w2 x3 ┆ 0x8060…8080 20 20 20 20 3b 20 72 65 73 74 6f 72 65 20 77 32 0a 0a 20 20 20 20 20 77 61 20 20 77 32 20 20 78 ┆ ; restore w2 wa w2 x┆ 0x8080…80a0 31 2b 61 31 38 32 20 20 20 3b 20 20 20 20 77 32 20 3a 3d 20 61 62 73 20 65 78 63 65 70 74 69 6f ┆1+a182 ; w2 := abs exceptio┆ 0x80a0…80c0 6e 20 61 64 64 72 65 73 73 3b 0a 0a 20 20 20 20 20 64 6c 20 20 77 30 20 20 78 31 2b 61 32 39 20 ┆n address; dl w0 x1+a29 ┆ 0x80c0…80e0 20 20 20 3b 20 20 20 20 6d 6f 76 65 3a 20 20 73 61 76 65 20 77 30 0a 20 20 20 20 20 64 73 20 20 ┆ ; move: save w0 ds ┆ 0x80e0…8100 77 30 20 20 78 32 2b 6a 30 20 20 20 20 20 3b 20 20 20 20 20 20 20 20 20 20 20 73 61 76 65 20 77 ┆w0 x2+j0 ; save w┆ 0x8100…8120 31 0a 20 20 20 20 20 64 6c 20 20 77 30 20 20 78 31 2b 61 33 31 20 20 20 20 3b 20 20 20 20 20 20 ┆1 dl w0 x1+a31 ; ┆ 0x8120…8140 20 20 20 20 20 73 61 76 65 20 77 32 0a 20 20 20 20 20 64 73 20 20 77 30 20 20 78 32 2b 6a 31 20 ┆ save w2 ds w0 x2+j1 ┆ 0x8140…8160 20 20 20 20 3b 20 20 20 20 20 20 20 20 20 20 20 73 61 76 65 20 77 33 0a 20 20 20 20 20 64 6c 20 ┆ ; save w3 dl ┆ 0x8160…8180 20 77 30 20 20 78 31 2b 61 33 33 20 20 20 20 3b 20 20 20 20 20 20 20 20 20 20 20 73 61 76 65 20 ┆ w0 x1+a33 ; save ┆ 0x8180…81a0 73 74 61 74 75 73 0a 20 20 20 20 20 64 73 20 20 77 30 20 20 78 32 2b 6a 32 20 20 20 20 20 3b 20 ┆status ds w0 x2+j2 ; ┆ 0x81a0…81c0 20 20 20 20 20 20 20 20 20 20 73 61 76 65 20 69 63 0a 3b 20 20 20 20 72 73 20 20 77 30 20 20 78 ┆ save ic ; rs w0 x┆ 0x81c0…81e0 31 2b 61 32 38 20 20 20 20 3b 20 20 20 20 73 61 76 65 20 77 30 20 3a 3d 20 73 61 76 65 20 69 63 ┆1+a28 ; save w0 := save ic┆ 0x81e0…8200 3b 0a 3b 20 20 20 20 61 6c 20 20 77 30 20 20 20 20 20 31 34 3c 32 2b 30 20 3b 0a 3b 20 20 20 20 ┆; ; al w0 14<2+0 ; ; ┆ 0x8200…8220 72 73 20 20 77 30 20 20 78 31 2b 61 32 39 20 20 20 20 3b 20 20 20 20 73 61 76 65 20 77 31 20 3a ┆rs w0 x1+a29 ; save w1 :┆ 0x8220…8240 3d 20 27 6a 64 27 2d 69 6e 73 74 72 75 63 74 69 6f 6e 3b 0a 20 20 20 20 20 64 6c 20 20 77 30 20 ┆= 'jd'-instruction; dl w0 ┆ 0x8240…8260 20 78 31 2b 61 31 37 37 20 20 20 3b 20 20 20 20 20 20 20 20 20 20 20 73 61 76 65 20 63 61 75 73 ┆ x1+a177 ; save caus┆ 0x8260…8280 65 20 28 3d 20 36 29 0a 20 20 20 20 20 64 73 20 20 77 30 20 20 78 32 2b 6a 33 20 20 20 20 20 3b ┆e (= 6) ds w0 x2+j3 ;┆ 0x8280…82a0 20 20 20 20 20 20 20 20 20 20 20 73 61 76 65 20 73 62 20 20 20 74 6f 20 75 73 65 72 20 65 78 63 ┆ save sb to user exc┆ 0x82a0…82c0 65 70 74 69 6f 6e 20 61 64 64 72 65 73 3b 0a 3b 20 20 20 20 72 73 20 20 77 30 20 20 78 31 2b 61 ┆eption addres; ; rs w0 x1+a┆ 0x82c0…82e0 33 30 20 20 20 20 3b 20 20 20 20 73 61 76 65 20 77 32 20 3a 3d 20 73 61 76 65 20 73 62 3b 0a 3b ┆30 ; save w2 := save sb; ;┆ 0x82e0…8300 20 20 20 20 72 73 20 20 77 33 20 20 78 32 2b 61 33 31 20 20 20 20 3b 20 20 20 20 73 61 76 65 20 ┆ rs w3 x2+a31 ; save ┆ 0x8300…8320 77 33 20 3a 3d 20 73 61 76 65 20 63 61 75 73 65 20 28 3d 20 36 29 3b 0a 20 20 20 20 20 77 73 20 ┆w3 := save cause (= 6); ws ┆ 0x8320…8340 20 77 32 20 20 78 31 2b 61 31 38 32 20 20 20 3b 20 20 20 20 77 32 20 3a 3d 20 6c 6f 67 69 63 20 ┆ w2 x1+a182 ; w2 := logic ┆ 0x8340…8360 75 73 65 72 20 65 78 63 65 70 74 69 6f 6e 20 61 64 64 72 65 73 73 3b 0a 20 20 20 20 20 61 6c 20 ┆user exception address; al ┆ 0x8360…8380 20 77 32 20 20 78 32 2b 61 31 38 30 20 20 20 3b 0a 20 20 20 20 20 72 73 20 20 77 32 20 20 78 31 ┆ w2 x2+a180 ; rs w2 x1┆ 0x8380…83a0 2b 61 33 33 20 20 20 20 3b 20 20 20 20 73 61 76 65 20 69 63 20 3a 3d 20 65 78 63 65 70 74 69 6f ┆+a33 ; save ic := exceptio┆ 0x83a0…83c0 6e 20 61 64 64 72 65 73 73 20 2b 20 6e 6f 20 6f 66 20 72 65 67 64 75 6d 70 20 62 79 74 65 73 0a ┆n address + no of regdump bytes ┆ 0x83c0…83e0 65 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0a 3b 2e 20 2e 2e 2e 2e ┆e. ; ;. ....┆ 0x83e0…8400 2e 20 68 75 73 6b 20 61 74 20 6e 75 6c 73 74 69 6c 6c 65 20 61 64 64 72 65 73 73 65 2d 62 69 74 ┆. husk at nulstille addresse-bit┆ 0x8400…8420 73 20 69 20 73 74 61 74 75 73 20 2e 2e 2e 2e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆s i status ..... ┆ 0x8420…8440 20 20 20 20 20 20 20 20 3b 20 63 6f 6e 74 69 6e 75 65 20 77 69 74 68 20 69 6e 74 65 72 72 75 70 ┆ ; continue with interrup┆ 0x8440…8460 74 20 72 65 74 75 72 6e 3b 0a 0a 3b 20 69 6e 74 65 72 72 75 70 74 20 72 65 74 75 72 6e 3a 0a 3b ┆t return; ; interrupt return: ;┆ 0x8460…8480 20 61 20 6e 65 77 20 69 6e 74 65 72 6e 61 6c 20 70 72 6f 63 65 73 73 20 6d 61 79 20 68 61 76 65 ┆ a new internal process may have┆ 0x8480…84a0 20 62 65 65 6e 20 70 75 74 20 75 70 20 69 6e 20 66 72 6f 6e 74 20 6f 66 0a 3b 20 20 20 20 74 68 ┆ been put up in front of ; th┆ 0x84a0…84c0 65 20 74 69 6d 65 20 73 6c 69 63 65 20 71 75 65 75 65 2c 20 64 75 65 20 74 6f 20 61 6e 20 65 78 ┆e time slice queue, due to an ex┆ 0x84c0…84e0 74 65 72 6e 61 6c 20 69 6e 74 65 72 72 75 70 74 2c 20 6f 72 20 62 65 63 61 75 73 65 0a 3b 20 20 ┆ternal interrupt, or because ; ┆ 0x84e0…8500 20 20 74 68 65 20 63 75 72 72 65 6e 74 20 6d 6f 6e 69 74 6f 72 20 63 61 6c 6c 20 77 61 73 20 27 ┆ the current monitor call was '┆ 0x8500…8520 73 65 6e 64 20 6d 65 73 73 61 67 65 27 20 6f 72 20 74 68 65 20 6c 69 6b 65 2e 0a 3b 20 74 68 65 ┆send message' or the like. ; the┆ 0x8520…8540 72 65 66 6f 72 65 20 69 74 20 6d 75 73 74 20 62 65 20 74 65 73 74 65 64 2c 20 74 68 61 74 20 74 ┆refore it must be tested, that t┆ 0x8540…8560 68 65 20 63 75 72 72 65 6e 74 20 70 72 6f 63 65 73 73 20 69 73 20 73 74 69 6c 6c 0a 3b 20 20 20 ┆he current process is still ; ┆ 0x8560…8580 20 74 68 65 20 6f 6e 65 20 69 6e 20 66 72 6f 6e 74 2e 20 69 66 20 6e 6f 74 3a 20 73 65 6c 65 63 ┆ the one in front. if not: selec┆ 0x8580…85a0 74 20 74 68 61 74 20 6f 6e 65 2e 0a 0a 63 32 34 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆t that one. c24: ┆ 0x85a0…85c0 20 20 20 20 3b 20 64 75 6d 6d 79 20 69 6e 74 65 72 72 75 70 74 0a 63 39 39 3a 20 20 20 20 20 20 ┆ ; dummy interrupt c99: ┆ 0x85c0…85e0 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 69 6e 74 65 72 72 75 70 74 20 72 65 74 75 72 6e 3a ┆ ; interrupt return:┆ 0x85e0…8600 0a 20 20 20 20 20 6a 6c 20 20 77 33 20 20 20 20 20 64 33 36 20 20 20 20 3b 20 20 20 20 73 74 61 ┆ jl w3 d36 ; sta┆ 0x8600…8620 72 74 20 63 70 75 28 69 29 2c 20 69 3d 31 2c 2e 2e 2e 2c 6c 61 73 74 20 63 70 75 3b 0a 20 20 20 ┆rt cpu(i), i=1,...,last cpu; ┆ 0x8620…8640 20 20 64 6c 20 20 77 32 20 20 20 20 20 62 32 20 20 20 20 20 3b 20 20 20 20 77 31 20 3a 3d 20 63 ┆ dl w2 b2 ; w1 := c┆ 0x8640…8660 75 72 3b 20 20 77 32 20 3a 3d 20 66 69 72 73 74 20 69 6e 20 74 69 6d 65 20 73 6c 69 63 65 20 71 ┆ur; w2 := first in time slice q┆ 0x8660…8680 75 65 75 65 3b 0a 20 20 20 20 20 73 6e 20 20 77 31 20 20 78 32 2d 61 31 36 20 20 20 20 3b 20 20 ┆ueue; sn w1 x2-a16 ; ┆ 0x8680…86a0 20 20 69 66 20 63 75 72 20 3d 20 66 69 72 73 74 20 74 68 65 6e 0a 20 20 20 20 20 72 69 20 20 20 ┆ if cur = first then ri ┆ 0x86a0…86c0 20 20 20 20 20 20 61 31 37 39 20 20 20 3b 20 20 20 20 20 20 72 65 74 75 72 6e 20 69 6e 74 65 72 ┆ a179 ; return inter┆ 0x86c0…86e0 72 75 70 74 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 20 ┆rupt; ; ┆ 0x86e0…8700 20 20 20 20 28 70 72 65 66 65 72 61 62 6c 79 20 77 69 74 68 6f 75 74 20 72 65 6c 6f 61 64 69 6e ┆ (preferably without reloadin┆ 0x8700…8720 (15,) 67 20 6c 69 6d 69 74 2d 63 6f 70 69 65 73 29 0a 0a 3b 20 69 6e 69 74 69 61 6c 69 7a 65 20 74 68 ┆g limit-copies) ; initialize th┆ 0x8720…8740 65 20 70 72 65 76 69 6f 75 73 20 69 6e 74 65 72 72 75 70 74 20 73 74 61 63 6b 20 65 6c 65 6d 65 ┆e previous interrupt stack eleme┆ 0x8740…8760 6e 74 3a 0a 20 20 20 20 20 61 6c 20 20 77 32 20 20 78 32 2d 61 31 36 20 20 20 20 3b 20 20 20 20 ┆nt: al w2 x2-a16 ; ┆ 0x8760…8780 63 75 72 20 3a 3d 20 6e 65 77 20 63 75 72 3b 20 20 69 2e 65 2e 20 66 69 72 73 74 20 69 6e 20 74 ┆cur := new cur; i.e. first in t┆ 0x8780…87a0 69 6d 65 20 73 6c 69 63 65 20 71 75 65 75 65 3b 0a 20 20 20 20 20 72 73 20 20 77 32 20 20 20 20 ┆ime slice queue; rs w2 ┆ 0x87a0…87c0 20 62 31 20 20 20 20 20 3b 0a 20 20 20 20 20 72 6c 20 20 77 30 20 20 78 32 2b 61 33 35 20 20 20 ┆ b1 ; rl w0 x2+a35 ┆ 0x87c0…87e0 20 3b 20 20 20 20 74 69 6d 65 20 73 6c 69 63 65 20 3a 3d 20 71 75 61 6e 74 75 6d 28 6e 65 77 20 ┆ ; time slice := quantum(new ┆ 0x87e0…8800 63 75 72 72 65 6e 74 29 3b 0a 20 20 20 20 20 72 73 20 20 77 30 20 20 20 20 20 62 31 31 20 20 20 ┆current); rs w0 b11 ┆ 0x8800…8820 20 3b 0a 20 20 20 20 20 67 67 20 20 77 33 20 20 20 20 20 62 39 31 20 20 20 20 3b 20 20 20 20 77 ┆ ; gg w3 b91 ; w┆ 0x8820…8840 33 20 3a 3d 20 69 6e 66 20 28 3d 20 61 64 64 72 65 73 73 20 6f 66 20 63 75 72 72 65 6e 74 20 73 ┆3 := inf (= address of current s┆ 0x8840…8860 74 61 63 6b 20 65 6c 65 6d 65 6e 74 29 3b 0a 20 20 20 20 20 64 6c 20 20 77 31 20 20 78 32 2b 61 ┆tack element); dl w1 x2+a┆ 0x8860…8880 31 37 30 20 20 20 3b 20 20 20 20 6d 6f 76 65 3a 20 20 75 73 65 72 20 65 73 63 61 70 65 20 61 64 ┆170 ; move: user escape ad┆ 0x8880…88a0 64 72 65 73 73 20 28 63 75 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆dress (cur) ┆ 0x88a0…88c0 20 20 20 3b 20 20 20 20 20 20 20 20 20 20 20 75 73 65 72 20 65 78 63 65 70 74 69 6f 6e 20 61 64 ┆ ; user exception ad┆ 0x88c0…88e0 64 72 65 73 73 20 28 63 75 72 29 0a 20 20 20 20 20 64 73 20 20 77 31 20 20 78 33 2b 61 33 32 35 ┆dress (cur) ds w1 x3+a325┆ 0x88e0…8900 2b 61 33 32 38 3b 0a 20 20 20 20 20 61 6c 20 20 77 30 20 20 78 32 2b 61 32 38 20 20 20 20 3b 20 ┆+a328; al w0 x2+a28 ; ┆ 0x8900…8920 20 20 20 20 20 20 20 20 20 20 61 64 64 72 65 73 73 20 6f 66 20 72 65 67 64 75 6d 70 20 61 72 65 ┆ address of regdump are┆ 0x8920…8940 61 20 28 63 75 72 29 0a 20 20 20 20 20 72 73 20 20 77 30 20 20 78 33 2b 61 33 32 35 2b 61 33 32 ┆a (cur) rs w0 x3+a325+a32┆ 0x8940…8960 36 3b 20 20 20 20 74 6f 3a 20 20 70 72 65 76 69 6f 75 73 20 69 6e 74 65 72 72 75 70 74 20 73 74 ┆6; to: previous interrupt st┆ 0x8960…8980 61 63 6b 20 65 6c 65 6d 65 6e 74 3b 0a 20 20 0a 63 2e 61 34 30 30 2d 31 0a 3b 20 69 6e 73 65 72 ┆ack element; c.a400-1 ; inser┆ 0x8980…89a0 74 20 70 72 6f 63 65 73 73 20 65 78 74 65 6e 73 69 6f 6e 20 61 64 64 72 65 73 73 65 73 20 69 6e ┆t process extension addresses in┆ 0x89a0…89c0 20 6d 6f 6e 69 74 6f 72 20 74 61 62 6c 65 0a 20 20 20 20 20 64 6c 20 20 77 31 20 20 78 32 2b 61 ┆ monitor table dl w1 x2+a┆ 0x89c0…89e0 33 30 36 20 20 20 3b 0a 20 20 20 20 20 77 61 20 20 77 30 20 20 78 32 2b 61 31 38 32 20 20 20 3b ┆306 ; wa w0 x2+a182 ;┆ 0x89e0…8a00 0a 20 20 20 20 20 77 61 20 20 77 31 20 20 78 32 2b 61 31 38 32 20 20 20 3b 0a 20 20 20 20 20 64 ┆ wa w1 x2+a182 ; d┆ 0x8a00…8a20 73 20 20 77 31 20 20 62 32 38 20 20 20 20 20 20 20 3b 0a 7a 2e 0a 0a 3b 20 69 66 20 74 68 65 20 ┆s w1 b28 ; z. ; if the ┆ 0x8a20…8a40 6e 65 77 20 63 75 72 72 65 6e 74 20 70 72 6f 63 65 73 73 20 69 73 20 61 20 64 72 69 76 65 72 20 ┆new current process is a driver ┆ 0x8a40…8a60 70 72 6f 63 65 73 73 20 74 68 65 6e 20 6d 61 79 62 65 0a 3b 20 20 20 20 65 78 63 68 61 6e 67 65 ┆process then maybe ; exchange┆ 0x8a60…8a80 20 64 72 69 76 65 72 20 73 74 64 2d 6c 6f 63 61 74 69 6f 6e 73 3a 0a 0a 20 20 20 20 20 72 6c 20 ┆ driver std-locations: rl ┆ 0x8a80…8aa0 20 77 30 20 20 78 32 2b 61 33 30 32 20 20 20 3b 20 20 20 20 69 66 20 74 68 65 20 6e 65 77 20 63 ┆ w0 x2+a302 ; if the new c┆ 0x8aa0…8ac0 75 72 72 65 6e 74 20 70 72 6f 63 65 73 73 20 68 61 73 20 6e 6f 74 0a 20 20 20 20 20 73 65 20 20 ┆urrent process has not se ┆ 0x8ac0…8ae0 77 30 20 20 20 20 20 30 20 20 20 20 20 20 3b 20 20 20 20 20 20 64 65 66 69 6e 65 64 20 61 20 27 ┆w0 0 ; defined a '┆ 0x8ae0…8b00 77 61 69 74 20 66 69 72 73 74 20 65 76 65 6e 74 27 0a 20 20 20 20 20 73 6e 20 20 77 32 20 20 20 ┆wait first event' sn w2 ┆ 0x8b00…8b20 20 28 62 32 31 29 20 20 20 3b 20 20 20 20 6f 72 20 74 68 65 20 6e 65 77 20 63 75 72 20 3d 20 6f ┆ (b21) ; or the new cur = o┆ 0x8b20…8b40 77 6e 65 72 20 6f 66 20 73 74 64 2d 6c 6f 63 61 74 69 6f 6e 73 20 74 68 65 6e 0a 20 20 20 20 20 ┆wner of std-locations then ┆ 0x8b40…8b60 72 69 20 20 20 20 20 20 20 20 20 61 31 37 39 20 20 20 3b 20 20 20 20 20 20 72 65 74 75 72 6e 20 ┆ri a179 ; return ┆ 0x8b60…8b80 69 6e 74 65 72 72 75 70 74 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆interrupt; ┆ 0x8b80…8ba0 20 20 3b 20 20 20 20 20 20 28 6c 69 6d 69 74 2d 63 6f 70 69 65 73 20 6d 75 73 74 20 62 65 20 69 ┆ ; (limit-copies must be i┆ 0x8ba0…8bc0 6e 69 74 69 61 6c 69 7a 65 64 29 0a 0a 3b 20 74 68 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 74 ┆nitialized) ; the contents of t┆ 0x8bc0…8be0 68 65 20 73 74 64 2d 64 72 69 76 65 72 2d 6c 6f 63 61 74 69 6f 6e 73 20 68 61 76 65 20 74 6f 20 ┆he std-driver-locations have to ┆ 0x8be0…8c00 62 65 20 65 78 63 68 61 6e 67 65 64 3a 0a 3b 0a 3b 20 73 61 76 65 20 74 68 65 20 6f 6c 64 20 63 ┆be exchanged: ; ; save the old c┆ 0x8c00…8c20 6f 6e 74 65 6e 74 73 20 69 6e 20 74 68 65 20 6f 75 74 70 6f 69 6e 74 65 64 20 70 72 6f 63 65 73 ┆ontents in the outpointed proces┆ 0x8c20…8c40 73 20 64 65 73 63 72 69 70 74 69 6f 6e 3a 0a 3b 0a 20 20 20 20 20 72 6c 20 20 77 33 20 20 20 20 ┆s description: ; rl w3 ┆ 0x8c40…8c60 20 62 32 31 20 20 20 20 3b 20 20 20 20 77 33 20 3a 3d 20 70 72 65 76 69 6f 75 73 20 6f 77 6e 65 ┆ b21 ; w3 := previous owne┆ 0x8c60…8c80 72 20 6f 66 20 73 74 64 20 6c 6f 63 61 74 69 6f 6e 73 3b 0a 20 20 20 20 20 64 6c 20 20 77 31 20 ┆r of std locations; dl w1 ┆ 0x8c80…8ca0 20 20 20 20 67 32 31 20 20 20 20 3b 20 20 20 20 6d 6f 76 65 3a 20 20 67 32 30 0a 20 20 20 20 20 ┆ g21 ; move: g20 ┆ 0x8ca0…8cc0 64 73 20 20 77 31 20 20 78 33 2b 61 33 30 32 2b 34 20 3b 20 20 20 20 20 20 20 20 20 20 20 67 32 ┆ds w1 x3+a302+4 ; g2┆ 0x8cc0…8ce0 31 0a 20 20 20 20 20 64 6c 20 20 77 31 20 20 20 20 20 67 32 33 20 20 20 20 3b 20 20 20 20 20 20 ┆1 dl w1 g23 ; ┆ 0x8ce0…8d00 20 20 20 20 20 67 32 32 0a 20 20 20 20 20 64 73 20 20 77 31 20 20 78 33 2b 61 33 30 32 2b 38 20 ┆ g22 ds w1 x3+a302+8 ┆ 0x8d00…8d20 3b 20 20 20 20 20 20 20 20 20 20 20 67 32 33 0a 20 20 20 20 20 72 6c 20 20 77 31 20 20 20 20 20 ┆; g23 rl w1 ┆ 0x8d20…8d40 67 32 34 20 20 20 20 3b 20 20 20 20 20 20 20 20 20 20 20 67 32 34 0a 20 20 20 20 20 72 73 20 20 ┆g24 ; g24 rs ┆ 0x8d40…8d60 77 31 20 20 78 33 2b 61 33 30 32 2b 31 30 3b 20 20 20 20 20 20 20 20 20 20 20 62 31 38 0a 20 20 ┆w1 x3+a302+10; b18 ┆ 0x8d60…8d80 20 20 20 64 6c 20 20 77 31 20 20 20 20 20 62 31 39 20 20 20 20 3b 20 20 20 20 20 20 20 20 20 20 ┆ dl w1 b19 ; ┆ 0x8d80…8da0 20 62 31 39 0a 20 20 20 20 20 64 73 20 20 77 31 20 20 78 33 2b 61 33 30 32 2b 31 34 3b 20 20 20 ┆ b19 ds w1 x3+a302+14; ┆ 0x8da0…8dc0 20 20 20 74 6f 3a 20 70 72 65 76 69 6f 75 73 20 70 72 6f 63 65 73 73 20 64 65 73 63 72 69 70 74 ┆ to: previous process descript┆ 0x8dc0…8de0 69 6f 6e 3b 0a 0a 3b 20 72 65 73 74 6f 72 65 20 74 68 65 20 73 74 64 2d 6c 6f 63 61 74 69 6f 6e ┆ion; ; restore the std-location┆ 0x8de0…8e00 73 20 66 72 6f 6d 20 74 68 65 20 6e 65 77 20 63 75 72 72 65 6e 74 20 70 72 6f 63 65 73 73 3a 0a ┆s from the new current process: ┆ 0x8e00…8e20 20 20 20 20 20 72 73 20 20 77 32 20 20 20 20 20 62 32 31 20 20 20 20 3b 20 20 20 20 6e 65 77 20 ┆ rs w2 b21 ; new ┆ 0x8e20…8e40 6f 77 6e 65 72 20 3a 3d 20 63 75 72 72 65 6e 74 20 70 72 6f 63 65 73 73 3b 0a 20 20 20 20 20 64 ┆owner := current process; d┆ 0x8e40…8e60 6c 20 20 77 31 20 20 78 32 2b 61 33 30 32 2b 34 20 3b 20 20 20 20 6d 6f 76 65 3a 20 20 67 32 30 ┆l w1 x2+a302+4 ; move: g20┆ 0x8e60…8e80 0a 20 20 20 20 20 64 73 20 20 77 31 20 20 20 20 20 67 32 31 20 20 20 20 3b 20 20 20 20 20 20 20 ┆ ds w1 g21 ; ┆ 0x8e80…8ea0 20 20 20 20 67 32 31 0a 20 20 20 20 20 64 6c 20 20 77 31 20 20 78 32 2b 61 33 30 32 2b 38 20 3b ┆ g21 dl w1 x2+a302+8 ;┆ 0x8ea0…8ec0 20 20 20 20 20 20 20 20 20 20 20 67 32 32 0a 20 20 20 20 20 64 73 20 20 77 31 20 20 20 20 20 67 ┆ g22 ds w1 g┆ 0x8ec0…8ee0 32 33 20 20 20 20 3b 20 20 20 20 20 20 20 20 20 20 20 67 32 33 0a 20 20 20 20 20 72 6c 20 20 77 ┆23 ; g23 rl w┆ 0x8ee0…8f00 31 20 20 78 32 2b 61 33 30 32 2b 31 30 3b 20 20 20 20 20 20 20 20 20 20 20 67 32 34 0a 20 20 20 ┆1 x2+a302+10; g24 ┆ 0x8f00…8f20 20 20 72 73 20 20 77 31 20 20 20 20 20 67 32 34 20 20 20 20 3b 20 20 20 20 20 20 20 20 20 20 20 ┆ rs w1 g24 ; ┆ 0x8f20…8f40 62 31 38 0a 20 20 20 20 20 64 6c 20 20 77 31 20 20 78 32 2b 61 33 30 32 2b 31 34 3b 20 20 20 20 ┆b18 dl w1 x2+a302+14; ┆ 0x8f40…8f60 20 20 20 20 20 20 20 62 31 39 0a 20 20 20 20 20 64 73 20 20 77 31 20 20 20 20 20 62 31 39 20 20 ┆ b19 ds w1 b19 ┆ 0x8f60…8f80 20 20 3b 20 20 20 20 66 72 6f 6d 3a 20 6e 65 77 20 63 75 72 72 65 6e 74 20 70 72 6f 63 65 73 73 ┆ ; from: new current process┆ 0x8f80…8fa0 3b 0a 0a 20 20 20 20 20 72 69 20 20 20 20 20 20 20 20 20 61 31 37 39 20 20 20 3b 20 20 20 20 72 ┆; ri a179 ; r┆ 0x8fa0…8fc0 65 74 75 72 6e 20 69 6e 74 65 72 72 75 70 74 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆eturn interrupt; ┆ 0x8fc0…8fe0 20 20 20 20 20 20 20 20 3b 20 20 20 20 28 6c 69 6d 69 74 2d 63 6f 70 69 65 73 20 6d 75 73 74 20 ┆ ; (limit-copies must ┆ 0x8fe0…9000 62 65 20 69 6e 69 74 69 61 6c 69 7a 65 64 29 0a 0a 3b 20 70 6f 77 65 72 20 66 61 69 6c 75 72 65 ┆be initialized) ; power failure┆ 0x9000…9020 (16,) 3a 0a 3b 0a 3b 20 6d 61 79 20 6f 63 63 75 72 20 61 74 20 61 6e 79 20 6c 65 76 65 6c 0a 3b 0a 3b ┆: ; ; may occur at any level ; ;┆ 0x9020…9040 20 73 61 76 65 20 74 68 65 20 63 75 72 72 65 6e 74 20 69 6e 74 65 72 72 75 70 74 20 73 74 61 63 ┆ save the current interrupt stac┆ 0x9040…9060 6b 20 65 6e 74 72 79 20 61 64 64 72 65 73 73 2c 20 75 6e 6c 65 73 73 0a 3b 20 20 20 20 61 6c 72 ┆k entry address, unless ; alr┆ 0x9060…9080 65 61 64 79 20 73 61 76 65 64 0a 3b 20 28 74 68 69 73 20 73 68 6f 75 6c 64 20 70 72 65 76 65 6e ┆eady saved ; (this should preven┆ 0x9080…90a0 74 20 70 6f 77 65 72 66 61 69 6c 2d 63 61 73 63 61 64 65 73 20 66 72 6f 6d 20 64 69 73 74 75 72 ┆t powerfail-cascades from distur┆ 0x90a0…90c0 62 69 6e 67 20 74 68 65 20 73 79 73 74 65 6d 29 0a 0a 62 2e 20 68 31 30 2c 20 69 31 30 20 77 2e ┆bing the system) b. h10, i10 w.┆ 0x90c0…90e0 20 20 20 20 20 20 20 20 20 3b 0a 63 36 3a 20 20 67 67 20 20 77 32 20 20 20 20 20 62 39 31 20 20 ┆ ; c6: gg w2 b91 ┆ 0x90e0…9100 20 20 3b 20 20 20 20 77 32 20 3a 3d 20 63 75 72 72 65 6e 74 20 73 74 61 63 6b 20 65 6c 65 6d 65 ┆ ; w2 := current stack eleme┆ 0x9100…9120 6e 74 3b 0a 20 20 20 20 20 72 6c 20 20 77 33 20 20 20 20 20 68 30 20 20 20 20 20 3b 20 20 20 20 ┆nt; rl w3 h0 ; ┆ 0x9120…9140 77 33 20 3a 3d 20 70 72 65 76 69 6f 75 73 20 70 6f 77 65 72 20 75 70 20 65 6c 65 6d 65 6e 74 3b ┆w3 := previous power up element;┆ 0x9140…9160 0a 20 20 20 20 20 73 6e 20 20 77 33 20 20 20 20 20 30 20 20 20 20 20 20 3b 20 20 20 20 69 66 20 ┆ sn w3 0 ; if ┆ 0x9160…9180 70 72 65 76 69 6f 75 73 20 65 6c 65 6d 65 6e 74 20 69 73 20 66 72 65 65 20 74 68 65 6e 0a 20 20 ┆previous element is free then ┆ 0x9180…91a0 20 20 20 72 73 20 20 77 32 20 20 20 20 20 68 30 20 20 20 20 20 3b 20 20 20 20 20 20 70 6f 77 65 ┆ rs w2 h0 ; powe┆ 0x91a0…91c0 72 20 75 70 20 65 6c 65 6d 65 6e 74 20 3a 3d 20 63 75 72 72 65 6e 74 20 73 74 61 63 6b 20 65 6c ┆r up element := current stack el┆ 0x91c0…91e0 65 6d 65 6e 74 3b 0a 20 20 20 20 20 61 6c 20 20 77 32 20 20 20 20 20 30 20 20 20 20 20 20 3b 20 ┆ement; al w2 0 ; ┆ 0x91e0…9200 20 20 20 69 6c 65 76 63 20 3a 3d 20 30 3b 0a 20 20 20 20 20 67 70 20 20 77 32 20 20 20 20 20 62 ┆ ilevc := 0; gp w2 b┆ 0x9200…9220 39 30 20 20 20 20 3b 20 20 20 20 28 69 2e 65 2e 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 77 ┆90 ; (i.e. the following w┆ 0x9220…9240 69 6c 6c 20 70 72 6f 76 6f 6b 65 20 61 20 73 79 73 74 65 6d 66 61 75 6c 74 29 0a 20 20 20 20 20 ┆ill provoke a systemfault) ┆ 0x9240…9260 6a 6c 20 20 20 20 20 20 20 20 2d 31 3c 31 20 20 20 20 3b 20 20 20 20 68 61 6c 74 3b 0a 0a 68 30 ┆jl -1<1 ; halt; h0┆ 0x9260…9280 3a 20 20 62 34 39 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 70 6f 77 65 72 20 75 70 20 ┆: b49 ; power up ┆ 0x9280…92a0 65 6c 65 6d 65 6e 74 3a 20 69 6e 69 74 69 61 6c 6c 79 20 6d 6f 6e 69 74 6f 72 20 65 6c 65 6d 65 ┆element: initially monitor eleme┆ 0x92a0…92c0 6e 74 0a 68 31 3a 20 64 31 34 30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 20 20 20 61 ┆nt h1: d140 ; a┆ 0x92c0…92e0 64 64 72 28 64 75 6d 70 20 63 6f 72 65 20 70 72 6f 63 65 64 75 72 65 29 0a 0a 3b 20 70 6f 77 65 ┆ddr(dump core procedure) ; powe┆ 0x92e0…9300 72 20 75 70 3a 0a 3b 0a 3b 20 69 6e 69 74 69 61 6c 69 7a 65 3a 20 6d 6f 6e 74 6f 70 20 28 69 2e ┆r up: ; ; initialize: montop (i.┆ 0x9300…9320 65 2e 20 6d 61 78 20 6d 6f 6e 69 74 6f 72 20 66 75 6e 63 74 69 6f 6e 29 0a 3b 20 20 20 20 20 20 ┆e. max monitor function) ; ┆ 0x9320…9340 20 20 20 20 20 20 20 73 69 7a 65 20 20 20 28 69 2e 65 2e 20 63 6f 72 65 20 73 69 7a 65 29 0a 3b ┆ size (i.e. core size) ;┆ 0x9340…9360 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 66 20 20 20 20 28 69 2e 65 2e 20 70 6f 77 65 72 20 ┆ inf (i.e. power ┆ 0x9360…9380 75 70 20 65 6c 65 6d 65 6e 74 29 0a 3b 0a 3b 20 63 6c 65 61 72 20 61 6e 79 20 70 65 6e 64 69 6e ┆up element) ; ; clear any pendin┆ 0x9380…93a0 67 20 69 6e 74 65 72 72 75 70 74 20 62 69 74 73 2c 20 62 65 63 61 75 73 65 20 74 68 65 79 20 6d ┆g interrupt bits, because they m┆ 0x93a0…93c0 61 79 20 62 65 20 69 72 72 65 6c 6c 65 76 61 6e 74 0a 3b 0a 3b 20 65 6e 74 72 79 20 63 6f 6e 64 ┆ay be irrellevant ; ; entry cond┆ 0x93c0…93e0 69 74 69 6f 6e 73 3a 0a 3b 20 20 20 20 69 6e 66 20 72 65 67 69 73 74 65 72 20 3d 20 31 0a 3b 20 ┆itions: ; inf register = 1 ; ┆ 0x93e0…9400 20 20 20 74 6f 74 61 6c 6c 79 20 64 69 73 61 62 6c 65 64 0a 0a 63 32 35 3a 20 61 6c 20 20 77 33 ┆ totally disabled c25: al w3┆ 0x9400…9420 20 20 20 20 2d 31 3c 31 31 20 20 20 3b 20 20 20 20 6d 6f 6e 74 6f 70 20 3a 3d 20 31 20 3c 20 31 ┆ -1<11 ; montop := 1 < 1┆ 0x9420…9440 31 0a 20 20 20 20 20 61 63 20 20 77 33 20 20 78 33 2b 62 31 37 20 20 20 20 3b 20 20 20 20 20 20 ┆1 ac w3 x3+b17 ; ┆ 0x9440…9460 2d 20 74 6f 70 20 6d 6f 6e 69 74 6f 72 20 66 75 6e 63 74 69 6f 6e 20 6e 75 6d 62 65 72 3b 0a 20 ┆- top monitor function number; ┆ 0x9460…9480 20 20 20 20 67 70 20 20 77 33 20 20 20 20 20 62 39 33 20 20 20 20 3b 0a 0a 20 20 20 20 20 72 6c ┆ gp w3 b93 ; rl┆ 0x9480…94a0 20 20 77 33 20 20 20 20 20 62 31 32 20 20 20 20 3b 20 20 20 20 73 69 7a 65 20 3a 3d 20 6e 75 6d ┆ w3 b12 ; size := num┆ 0x94a0…94c0 62 65 72 20 6f 66 20 73 74 6f 72 61 67 65 20 62 79 74 65 73 3b 0a 20 20 20 20 20 67 70 20 20 77 ┆ber of storage bytes; gp w┆ 0x94c0…94e0 33 20 20 20 20 20 62 39 32 20 20 20 20 3b 0a 63 2e 28 3a 61 39 30 3e 30 20 61 2e 31 3a 29 2d 31 ┆3 b92 ; c.(:a90>0 a.1:)-1┆ 0x94e0…9500 0a 20 20 20 20 20 6a 6c 20 20 77 33 20 20 20 20 28 68 31 29 20 20 20 3b 20 64 75 6d 70 20 63 6f ┆ jl w3 (h1) ; dump co┆ 0x9500…9520 72 65 20 76 69 61 20 66 70 61 0a 20 20 20 20 20 6a 6c 20 20 77 33 20 20 20 20 20 64 33 37 20 20 ┆re via fpa jl w3 d37 ┆ 0x9520…9540 20 20 3b 20 20 20 20 69 6e 69 74 20 63 70 75 31 0a 7a 2e 0a 0a 0a 20 20 20 20 20 61 6c 20 20 77 ┆ ; init cpu1 z. al w┆ 0x9540…9560 33 20 20 20 20 20 36 20 20 20 20 20 20 3b 20 20 20 20 69 6c 65 76 63 20 3a 3d 20 30 20 3c 20 31 ┆3 6 ; ilevc := 0 < 1┆ 0x9560…9580 32 20 2b 20 36 3b 0a 20 20 20 20 20 67 70 20 20 77 33 20 20 20 20 20 62 39 30 20 20 20 20 3b 20 ┆2 + 6; gp w3 b90 ; ┆ 0x9580…95a0 20 20 20 69 2e 65 2e 20 65 6e 61 62 6c 65 20 66 6f 72 20 70 6f 77 65 72 66 61 69 6c 3b 0a 0a 20 ┆ i.e. enable for powerfail; ┆ 0x95a0…95c0 20 20 20 20 72 6c 20 20 77 33 20 20 20 20 20 68 30 20 20 20 20 20 3b 20 20 20 20 77 33 20 3a 3d ┆ rl w3 h0 ; w3 :=┆ 0x95c0…95e0 20 70 6f 77 65 72 20 75 70 20 65 6c 65 6d 65 6e 74 3b 0a 20 20 20 20 20 73 6e 20 20 77 33 20 20 ┆ power up element; sn w3 ┆ 0x95e0…9600 20 20 20 30 20 20 20 20 20 20 3b 20 20 20 20 69 66 20 70 6f 77 65 72 20 75 70 20 65 6c 65 6d 65 ┆ 0 ; if power up eleme┆ 0x9600…9620 6e 74 20 3d 20 30 20 74 68 65 6e 0a 20 20 20 20 20 6a 6c 20 20 20 20 20 20 20 20 2d 32 3c 31 20 ┆nt = 0 then jl -2<1 ┆ 0x9620…9640 20 20 20 3b 20 20 20 20 20 20 68 61 6c 74 3b 20 20 69 2e 65 2e 20 70 6f 77 65 72 20 66 61 69 6c ┆ ; halt; i.e. power fail┆ 0x9640…9660 20 77 61 73 20 6e 6f 74 20 73 65 72 76 69 63 65 64 3b 0a 20 20 20 20 20 72 73 20 20 77 33 20 20 ┆ was not serviced; rs w3 ┆ 0x9660…9680 20 20 20 62 37 35 20 20 20 20 3b 20 20 20 20 61 66 74 65 72 20 70 6f 77 65 72 66 61 69 6c 20 3a ┆ b75 ; after powerfail :┆ 0x9680…96a0 3d 20 74 72 75 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b ┆= true; ;┆ 0x96a0…96c0 20 20 20 20 28 73 68 6f 75 6c 64 20 62 65 20 74 65 73 74 65 64 20 62 79 20 63 6c 6f 63 6b 64 72 ┆ (should be tested by clockdr┆ 0x96c0…96e0 69 76 65 72 29 0a 0a 20 20 20 20 20 72 6c 20 20 77 32 20 20 20 20 20 62 37 33 20 20 20 20 3b 20 ┆iver) rl w2 b73 ; ┆ 0x96e0…9700 20 20 20 69 6e 74 6e 6f 20 3a 3d 20 6d 61 78 20 65 78 74 65 72 6e 61 6c 20 69 6e 74 65 72 72 75 ┆ intno := max external interru┆ 0x9700…9720 70 74 20 6e 75 6d 62 65 72 3b 0a 69 30 3a 20 20 67 70 20 20 77 32 20 20 20 20 20 62 39 35 20 20 ┆pt number; i0: gp w2 b95 ┆ 0x9720…9740 20 20 3b 20 72 65 70 3a 20 63 6c 65 61 72 20 28 69 6e 74 6e 6f 29 20 69 6e 20 63 70 75 3b 0a 20 ┆ ; rep: clear (intno) in cpu; ┆ 0x9740…9760 20 20 20 20 61 6c 20 20 77 32 20 20 78 32 2d 31 20 20 20 20 20 20 3b 20 20 20 20 69 6e 74 6e 6f ┆ al w2 x2-1 ; intno┆ 0x9760…9780 20 3a 3d 20 69 6e 74 6e 6f 20 2d 20 31 3b 0a 20 20 20 20 20 73 6c 20 20 77 32 20 20 20 20 20 36 ┆ := intno - 1; sl w2 6┆ 0x9780…97a0 2b 31 20 20 20 20 3b 20 20 20 20 69 66 20 69 6e 74 6e 6f 20 3e 20 70 6f 77 65 72 66 61 69 6c 20 ┆+1 ; if intno > powerfail ┆ 0x97a0…97c0 74 68 65 6e 0a 20 20 20 20 20 6a 6c 20 20 20 20 20 20 20 20 20 69 30 20 20 20 20 20 3b 20 20 20 ┆then jl i0 ; ┆ 0x97c0…97e0 20 20 20 67 6f 74 6f 20 72 65 70 3b 0a 20 20 20 20 20 61 6c 20 20 77 31 20 20 20 20 20 30 20 20 ┆ goto rep; al w1 0 ┆ 0x97e0…9800 20 20 20 20 3b 20 20 20 20 28 70 72 65 70 61 72 65 20 61 20 6e 65 77 20 68 30 2e 2e 2e 29 0a 0a ┆ ; (prepare a new h0...) ┆ 0x9800…9820 20 20 20 20 20 6a 65 20 20 20 20 20 20 20 20 20 6b 2b 32 20 20 20 20 3b 20 20 20 20 28 69 66 20 ┆ je k+2 ; (if ┆ 0x9820…9840 61 6e 79 20 70 6f 77 65 72 20 66 61 69 6c 20 64 75 72 69 6e 67 20 74 68 69 73 20 73 74 61 72 74 ┆any power fail during this start┆ 0x9840…9860 20 75 70 2c 0a 20 20 20 20 20 6a 64 20 20 20 20 20 20 20 20 20 6b 2b 32 20 20 20 20 3b 20 20 20 ┆ up, jd k+2 ; ┆ 0x9860…9880 20 20 20 69 74 20 77 69 6c 6c 20 62 65 20 27 73 65 72 76 69 63 65 64 27 20 6e 6f 77 2c 20 69 2e ┆ it will be 'serviced' now, i.┆ 0x9880…98a0 65 2e 20 73 79 73 74 65 6d 66 61 75 6c 74 29 0a 0a 3b 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 ┆e. systemfault) ; the following┆ 0x98a0…98c0 20 73 65 71 75 65 6e 63 65 20 6f 66 20 69 6e 73 74 72 75 63 74 69 6f 6e 73 20 68 61 76 65 20 74 ┆ sequence of instructions have t┆ 0x98c0…98e0 6f 20 62 65 20 65 78 65 63 75 74 65 64 0a 3b 20 77 69 74 68 6f 75 74 20 61 6e 79 20 64 69 73 74 ┆o be executed ; without any dist┆ 0x98e0…9900 75 72 62 61 6e 63 65 2c 20 65 6c 73 65 20 74 68 65 20 73 79 73 74 65 6d 20 77 6f 6e 27 74 20 77 ┆urbance, else the system won't w┆ 0x9900…9920 (17,) 6f 72 6b 0a 20 20 20 20 20 72 73 20 20 77 31 20 20 20 20 20 68 30 20 20 20 20 20 3b 20 20 20 20 ┆ork rs w1 h0 ; ┆ 0x9920…9940 63 6c 65 61 72 20 70 72 65 76 69 6f 75 73 20 70 6f 77 65 72 20 75 70 20 65 6c 65 6d 65 6e 74 3b ┆clear previous power up element;┆ 0x9940…9960 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 20 20 20 28 69 2e ┆ ; (i.┆ 0x9960…9980 65 2e 20 70 72 65 76 65 6e 74 20 74 77 6f 20 63 6f 6e 73 65 63 75 74 69 76 65 20 70 6f 77 65 72 ┆e. prevent two consecutive power┆ 0x9980…99a0 75 70 73 29 0a 20 20 20 20 20 67 70 20 20 77 33 20 20 20 20 20 62 39 31 20 20 20 20 3b 20 20 20 ┆ups) gp w3 b91 ; ┆ 0x99a0…99c0 20 69 6e 66 20 3a 3d 20 70 6f 77 65 72 20 75 70 20 65 6c 65 6d 65 6e 74 3b 0a 20 20 20 20 20 72 ┆ inf := power up element; r┆ 0x99c0…99e0 69 20 20 20 20 20 20 20 20 20 61 31 37 39 20 20 20 3b 20 20 20 20 72 65 74 75 72 6e 20 69 6e 74 ┆i a179 ; return int┆ 0x99e0…9a00 65 72 72 75 70 74 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b ┆errupt; ;┆ 0x9a00…9a20 20 20 20 20 28 74 68 65 20 6c 69 6d 69 74 2d 63 6f 70 69 65 73 20 6d 75 73 74 20 62 65 20 69 6e ┆ (the limit-copies must be in┆ 0x9a20…9a40 69 74 69 61 6c 69 7a 65 64 29 0a 65 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆itialized) e. ┆ 0x9a40…9a60 20 20 3b 20 65 6e 64 20 6f 66 20 70 6f 77 65 72 20 66 61 69 6c 2f 72 65 73 74 61 72 74 0a 0a 3b ┆ ; end of power fail/restart ;┆ 0x9a60…9a80 20 70 72 6f 63 65 64 75 72 65 20 64 65 6c 69 76 65 72 20 65 78 74 65 72 6e 61 6c 20 69 6e 74 65 ┆ procedure deliver external inte┆ 0x9a80…9aa0 72 72 75 70 74 0a 3b 0a 3b 20 77 68 65 6e 20 61 6e 20 65 78 74 65 72 6e 61 6c 20 69 6e 74 65 72 ┆rrupt ; ; when an external inter┆ 0x9aa0…9ac0 72 75 70 74 20 69 73 20 61 63 63 65 70 74 65 64 20 62 79 20 74 68 65 20 6d 6f 6e 69 74 6f 72 2c ┆rupt is accepted by the monitor,┆ 0x9ac0…9ae0 0a 3b 20 20 20 20 63 6f 6e 74 72 6f 6c 20 69 73 20 74 72 61 6e 73 66 65 72 72 65 64 20 6f 75 74 ┆ ; control is transferred out┆ 0x9ae0…9b00 20 69 6e 74 6f 20 74 68 65 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 0a 3b 20 20 20 20 64 65 76 ┆ into the corresponding ; dev┆ 0x9b00…9b20 69 63 65 20 64 65 73 63 72 69 70 74 69 6f 6e 2c 20 77 68 69 63 68 20 73 68 6f 75 6c 64 20 63 6f ┆ice description, which should co┆ 0x9b20…9b40 6e 74 61 69 6e 3a 0a 3b 0a 3b 20 20 20 20 20 20 20 20 64 65 76 20 64 65 73 63 72 20 2b 20 61 32 ┆ntain: ; ; dev descr + a2┆ 0x9b40…9b60 34 30 20 3a 20 20 6a 6c 20 20 77 32 20 20 20 20 20 63 35 31 0a 3b 0a 3b 20 72 65 74 75 72 6e 20 ┆40 : jl w2 c51 ; ; return ┆ 0x9b60…9b80 6d 75 73 74 20 62 65 20 6d 61 64 65 20 74 6f 20 74 68 65 20 73 74 61 6e 64 61 72 64 20 69 6e 74 ┆must be made to the standard int┆ 0x9b80…9ba0 65 72 72 75 70 74 20 72 65 74 75 72 6e 20 61 63 74 69 6f 6e 2c 0a 3b 20 20 20 20 77 68 69 63 68 ┆errupt return action, ; which┆ 0x9ba0…9bc0 20 77 69 6c 6c 20 74 61 6b 65 20 63 61 72 65 20 6f 66 20 61 20 70 6f 73 73 69 62 6c 65 20 73 65 ┆ will take care of a possible se┆ 0x9bc0…9be0 6c 65 63 74 69 6f 6e 20 6f 66 20 74 68 65 20 64 72 69 76 65 72 2e 0a 3b 0a 3b 20 63 61 6c 6c 3a ┆lection of the driver. ; ; call:┆ 0x9be0…9c00 20 77 32 20 3d 20 64 65 76 20 64 65 73 63 72 20 2b 20 61 32 34 31 0a 3b 20 72 65 74 75 72 6e 20 ┆ w2 = dev descr + a241 ; return ┆ 0x9c00…9c20 61 64 64 72 65 73 73 20 3d 20 69 6e 74 65 72 72 75 70 74 20 72 65 74 75 72 6e 0a 0a 63 35 31 3a ┆address = interrupt return c51:┆ 0x9c20…9c40 20 72 6c 20 20 77 33 20 20 78 32 2d 61 32 34 31 2b 61 32 33 30 3b 20 20 77 33 20 3a 3d 20 74 6f ┆ rl w3 x2-a241+a230; w3 := to┆ 0x9c40…9c60 70 20 6f 66 20 65 78 65 63 75 74 65 64 20 63 68 61 6e 6e 65 6c 20 70 72 6f 67 72 61 6d 3b 0a 20 ┆p of executed channel program; ┆ 0x9c60…9c80 20 20 20 20 61 6c 20 20 77 30 20 20 20 20 20 34 20 20 20 20 20 20 3b 20 20 20 20 72 65 73 75 6c ┆ al w0 4 ; resul┆ 0x9c80…9ca0 74 20 3a 3d 20 34 3b 20 28 69 2e 65 2e 20 70 72 65 70 61 72 65 20 66 6f 72 20 61 62 6e 6f 72 6d ┆t := 4; (i.e. prepare for abnorm┆ 0x9ca0…9cc0 61 6c 20 74 65 72 6d 69 6e 61 74 69 6f 6e 29 0a 20 20 20 20 20 73 65 20 20 77 33 20 20 20 20 20 ┆al termination) se w3 ┆ 0x9cc0…9ce0 30 20 20 20 20 20 20 3b 20 20 20 20 69 66 20 74 6f 70 20 63 6f 6d 6d 61 6e 64 20 61 64 64 72 65 ┆0 ; if top command addre┆ 0x9ce0…9d00 73 73 20 64 65 66 69 6e 65 64 20 74 68 65 6e 0a 20 20 20 20 20 62 6c 20 20 77 33 20 20 78 33 2d ┆ss defined then bl w3 x3-┆ 0x9d00…9d20 36 2b 31 20 20 20 20 3b 20 20 20 20 20 20 77 33 20 3a 3d 20 6c 61 73 74 20 63 6f 6d 6d 61 6e 64 ┆6+1 ; w3 := last command┆ 0x9d20…9d40 20 65 78 65 63 75 74 65 64 3b 0a 20 20 20 20 20 73 6e 20 20 77 33 20 20 20 20 2d 31 3c 38 20 20 ┆ executed; sn w3 -1<8 ┆ 0x9d40…9d60 20 20 3b 20 20 20 20 69 66 20 6c 61 73 74 20 63 6f 6d 6d 61 6e 64 20 3d 20 27 73 74 6f 70 27 20 ┆ ; if last command = 'stop' ┆ 0x9d60…9d80 74 68 65 6e 0a 20 20 20 20 20 61 6c 20 20 77 30 20 20 20 20 20 30 20 20 20 20 20 20 3b 20 20 20 ┆then al w0 0 ; ┆ 0x9d80…9da0 20 20 20 72 65 73 75 6c 74 20 3a 3d 20 30 3b 0a 20 20 20 20 20 73 6e 20 20 77 33 20 20 20 20 20 ┆ result := 0; sn w3 ┆ 0x9da0…9dc0 34 3c 38 20 20 20 20 3b 20 20 20 20 69 66 20 6c 61 73 74 20 63 6f 6d 6d 61 6e 64 20 3d 20 27 77 ┆4<8 ; if last command = 'w┆ 0x9dc0…9de0 61 69 74 27 20 74 68 65 6e 0a 20 20 20 20 20 61 6c 20 20 77 30 20 20 20 20 20 35 20 20 20 20 20 ┆ait' then al w0 5 ┆ 0x9de0…9e00 20 3b 20 20 20 20 20 20 72 65 73 75 6c 74 20 3a 3d 20 35 3b 0a 0a 63 35 30 3a 20 6a 6c 20 20 77 ┆ ; result := 5; c50: jl w┆ 0x9e00…9e20 33 20 20 20 20 20 64 33 35 20 20 20 20 3b 20 20 20 20 73 74 6f 70 28 69 29 2c 20 69 3d 31 2c 32 ┆3 d35 ; stop(i), i=1,2┆ 0x9e20…9e40 2c 33 2c 2e 2e 2e 2c 6c 61 73 74 20 63 70 75 0a 20 61 6c 20 20 77 33 20 20 20 20 20 63 39 39 20 ┆,3,...,last cpu al w3 c99 ┆ 0x9e40…9e60 20 20 20 3b 20 20 20 20 6c 69 6e 6b 20 3a 3d 20 69 6e 74 65 72 72 75 70 74 20 72 65 74 75 72 6e ┆ ; link := interrupt return┆ 0x9e60…9e80 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 63 6f 6e 74 69 ┆; ; conti┆ 0x9e80…9ea0 6e 75 65 20 77 69 74 68 20 64 65 6c 69 76 65 72 20 69 6e 74 65 72 72 75 70 74 0a 0a 3b 20 70 72 ┆nue with deliver interrupt ; pr┆ 0x9ea0…9ec0 6f 63 65 64 75 72 65 20 64 65 6c 69 76 65 72 20 69 6e 74 65 72 72 75 70 74 0a 3b 20 66 75 6e 63 ┆ocedure deliver interrupt ; func┆ 0x9ec0…9ee0 74 69 6f 6e 3a 20 64 65 6c 69 76 65 72 73 20 74 68 65 20 69 6e 74 65 72 72 75 70 74 20 6f 70 65 ┆tion: delivers the interrupt ope┆ 0x9ee0…9f00 72 61 74 69 6f 6e 20 69 6e 20 74 68 65 20 65 76 65 6e 74 20 71 75 65 75 65 0a 3b 20 20 20 20 20 ┆ration in the event queue ; ┆ 0x9f00…9f20 20 20 20 20 20 20 6f 66 20 74 68 65 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 64 72 69 76 65 ┆ of the corresponding drive┆ 0x9f20…9f40 72 20 70 72 6f 63 65 73 73 2e 0a 3b 20 20 20 20 20 20 20 20 20 20 20 74 68 65 20 64 72 69 76 65 ┆r process. ; the drive┆ 0x9f40…9f60 72 20 70 72 6f 63 65 73 73 20 69 73 20 73 74 61 72 74 65 64 2c 20 69 66 20 69 74 20 77 61 73 20 ┆r process is started, if it was ┆ 0x9f60…9f80 77 61 69 74 69 6e 67 20 66 6f 72 0a 3b 20 20 20 20 20 20 20 20 20 20 20 61 6e 20 65 76 65 6e 74 ┆waiting for ; an event┆ 0x9f80…9fa0 2e 0a 3b 0a 3b 20 63 61 6c 6c 3a 20 77 30 20 3d 20 72 65 73 75 6c 74 20 28 3d 30 2c 20 31 2c 20 ┆. ; ; call: w0 = result (=0, 1, ┆ 0x9fa0…9fc0 32 2c 20 33 2c 20 34 2c 20 35 2c 20 36 29 2c 20 77 32 20 3d 20 6f 70 65 72 61 74 69 6f 6e 2c 20 ┆2, 3, 4, 5, 6), w2 = operation, ┆ 0x9fc0…9fe0 77 33 20 3d 20 6c 69 6e 6b 0a 3b 20 65 78 69 74 3a 20 61 6c 6c 20 72 65 67 73 20 75 6e 64 65 66 ┆w3 = link ; exit: all regs undef┆ 0x9fe0…a000 0a 3b 20 72 65 74 75 72 6e 20 61 64 64 72 65 73 73 3a 20 6c 69 6e 6b 0a 0a 62 2e 20 68 31 30 20 ┆ ; return address: link b. h10 ┆ 0xa000…a020 77 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0a 64 31 32 31 3a 72 73 20 20 77 33 20 20 20 ┆w. ; d121:rs w3 ┆ 0xa020…a040 20 20 68 30 20 20 20 20 20 3b 20 20 20 20 73 61 76 65 20 28 72 65 74 75 72 6e 29 3b 0a 20 20 20 ┆ h0 ; save (return); ┆ 0xa040…a060 20 20 6a 6c 20 20 77 31 20 20 20 20 20 64 31 33 31 20 20 20 3b 20 20 20 20 73 65 74 20 72 65 73 ┆ jl w1 d131 ; set res┆ 0xa060…a080 75 6c 74 20 61 6e 64 20 64 65 73 63 72 65 61 73 65 20 61 6c 6c 20 73 74 6f 70 63 6f 75 6e 74 73 ┆ult and descrease all stopcounts┆ 0xa080…a0a0 3b 0a 3b 20 77 32 20 3d 20 64 65 76 69 63 65 20 64 65 73 63 72 0a 0a 20 20 20 20 20 72 6c 20 20 ┆; ; w2 = device descr rl ┆ 0xa0a0…a0c0 77 31 20 20 78 32 2b 61 32 35 30 20 20 20 3b 20 20 20 20 64 72 69 76 65 72 20 3a 3d 20 64 72 69 ┆w1 x2+a250 ; driver := dri┆ 0xa0c0…a0e0 76 65 72 70 72 6f 63 20 28 64 65 76 69 63 65 20 64 65 73 63 72 29 3b 0a 20 20 20 20 20 73 68 20 ┆verproc (device descr); sh ┆ 0xa0e0…a100 20 77 31 20 20 20 20 20 30 20 20 20 20 20 20 3b 20 20 20 20 69 66 20 64 72 69 76 65 72 20 75 6e ┆ w1 0 ; if driver un┆ 0xa100…a120 64 65 66 69 6e 65 64 20 74 68 65 6e 0a 20 20 20 20 20 6a 6c 20 20 20 20 20 20 20 20 28 68 30 29 ┆defined then jl (h0)┆ 0xa120…a140 20 20 20 20 3b 20 20 20 20 20 20 72 65 74 75 72 6e 3b 0a 0a 20 20 20 20 20 61 6c 20 20 77 32 20 ┆ ; return; al w2 ┆ 0xa140…a160 20 78 32 2b 61 32 34 31 20 20 20 3b 20 20 20 20 6f 70 65 72 20 3a 3d 20 74 69 6d 65 6f 75 74 20 ┆ x2+a241 ; oper := timeout ┆ 0xa160…a180 6f 70 65 72 61 74 69 6f 6e 20 28 64 65 76 69 63 65 20 64 65 73 63 72 29 3b 0a 20 20 20 20 20 72 ┆operation (device descr); r┆ 0xa180…a1a0 6c 20 20 77 33 20 20 20 20 20 68 30 20 20 20 20 20 3b 20 20 20 20 72 65 73 74 6f 72 65 20 28 72 ┆l w3 h0 ; restore (r┆ 0xa1a0…a1c0 65 74 75 72 6e 29 3b 0a 0a 20 20 20 20 20 62 7a 20 20 77 30 20 20 78 31 2b 61 31 33 20 20 20 20 ┆eturn); bz w0 x1+a13 ┆ 0xa1c0…a1e0 3b 20 20 20 20 73 74 61 74 65 20 3a 3d 20 73 74 61 74 65 28 64 72 69 76 65 72 29 3b 0a 20 20 20 ┆; state := state(driver); ┆ 0xa1e0…a200 20 20 73 6e 20 20 77 30 20 20 20 20 20 61 31 30 34 20 20 20 3b 20 20 20 20 69 66 20 64 72 69 76 ┆ sn w0 a104 ; if driv┆ 0xa200…a220 (18,) 65 72 20 69 73 20 77 61 69 74 69 6e 67 20 66 6f 72 20 65 76 65 6e 74 20 74 68 65 6e 0a 20 20 20 ┆er is waiting for event then ┆ 0xa220…a240 20 20 6a 6c 20 20 20 20 20 20 20 20 20 64 31 32 37 20 20 20 3b 20 20 20 20 20 20 67 6f 74 6f 20 ┆ jl d127 ; goto ┆ 0xa240…a260 74 61 6b 65 20 69 6e 74 65 72 72 75 70 74 3b 0a 0a 20 20 20 20 20 61 6c 20 20 77 31 20 20 78 31 ┆take interrupt; al w1 x1┆ 0xa260…a280 2b 61 31 35 20 20 20 20 3b 20 20 20 20 6c 69 6e 6b 20 28 65 76 65 6e 74 20 71 75 65 75 65 20 28 ┆+a15 ; link (event queue (┆ 0xa280…a2a0 64 72 69 76 65 72 29 20 2c 20 6f 70 65 72 29 3b 0a 20 20 20 20 20 6a 6c 20 20 20 20 20 20 20 20 ┆driver) , oper); jl ┆ 0xa2a0…a2c0 20 64 36 20 20 20 20 20 3b 20 20 20 20 72 65 74 75 72 6e 3b 0a 68 30 3a 20 20 30 20 20 20 20 20 ┆ d6 ; return; h0: 0 ┆ 0xa2c0…a2e0 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 73 61 76 65 64 20 72 65 74 75 72 6e 3b 0a 65 2e 20 20 ┆ ; saved return; e. ┆ 0xa2e0…a300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0a 0a 3b 20 70 72 6f 63 65 64 75 72 ┆ ; ; procedur┆ 0xa300…a320 65 20 74 61 6b 65 20 69 6e 74 65 72 72 75 70 74 0a 3b 20 66 75 6e 63 74 69 6f 6e 3a 20 6c 65 74 ┆e take interrupt ; function: let┆ 0xa320…a340 20 74 68 65 20 64 72 69 76 65 72 20 72 65 63 65 69 76 65 20 74 68 65 20 69 6e 74 65 72 72 75 70 ┆ the driver receive the interrup┆ 0xa340…a360 74 20 6f 70 65 72 61 74 69 6f 6e 20 61 74 20 6f 6e 63 65 0a 3b 0a 3b 20 63 61 6c 6c 3a 20 77 31 ┆t operation at once ; ; call: w1┆ 0xa360…a380 20 3d 20 64 72 69 76 65 72 20 70 72 6f 63 65 73 73 2c 20 77 32 20 3d 20 69 6e 74 65 72 72 75 70 ┆ = driver process, w2 = interrup┆ 0xa380…a3a0 74 20 6f 70 65 72 61 74 69 6f 6e 2c 20 77 33 20 3d 20 6c 69 6e 6b 0a 3b 20 65 78 69 74 3a 20 61 ┆t operation, w3 = link ; exit: a┆ 0xa3a0…a3c0 6c 6c 20 72 65 67 73 20 75 6e 64 65 66 0a 3b 20 72 65 74 75 72 6e 20 61 64 64 72 65 73 73 3a 20 ┆ll regs undef ; return address: ┆ 0xa3c0…a3e0 6c 69 6e 6b 0a 0a 64 31 32 37 3a 61 6c 20 20 77 32 20 20 78 32 2d 61 32 34 31 2b 61 32 34 36 3b ┆link d127:al w2 x2-a241+a246;┆ 0xa3e0…a400 0a 20 20 20 20 20 72 73 20 20 77 32 20 20 78 31 2b 61 33 30 20 20 20 20 3b 20 20 20 20 73 61 76 ┆ rs w2 x1+a30 ; sav┆ 0xa400…a420 65 20 77 32 20 28 64 72 69 76 65 72 29 20 3a 3d 20 61 64 64 72 65 73 73 20 6f 66 20 64 72 69 76 ┆e w2 (driver) := address of driv┆ 0xa420…a440 65 72 20 73 65 72 76 69 63 65 20 69 6e 73 74 0a 0a 20 20 20 20 20 61 6c 20 20 77 30 20 20 20 20 ┆er service inst al w0 ┆ 0xa440…a460 20 32 20 20 20 20 20 20 3b 20 20 20 20 73 61 76 65 20 77 30 20 28 64 72 69 76 65 72 29 20 3a 3d ┆ 2 ; save w0 (driver) :=┆ 0xa460…a480 20 32 3b 20 20 69 2e 65 2e 20 69 6e 64 69 63 61 74 65 20 69 6e 74 65 72 72 75 70 74 3b 0a 20 20 ┆ 2; i.e. indicate interrupt; ┆ 0xa480…a4a0 20 20 20 72 73 20 20 77 30 20 20 78 31 2b 61 32 38 20 20 20 20 3b 20 20 20 20 6c 69 6e 6b 20 69 ┆ rs w0 x1+a28 ; link i┆ 0xa4a0…a4c0 6e 74 65 72 6e 61 6c 20 28 64 72 69 76 65 72 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆nternal (driver); ┆ 0xa4c0…a4e0 20 20 20 20 20 20 20 20 20 3b 20 20 20 20 28 6f 6e 6c 79 20 72 65 6c 65 76 61 6e 74 20 61 66 74 ┆ ; (only relevant aft┆ 0xa4e0…a500 65 72 20 64 65 6c 69 76 65 72 20 69 6e 74 65 72 72 75 70 74 29 0a 20 20 20 20 20 6a 6c 20 20 20 ┆er deliver interrupt) jl ┆ 0xa500…a520 20 20 20 20 20 20 64 31 30 20 20 20 20 3b 20 20 20 20 72 65 74 75 72 6e 3b 0a 0a 3b 20 70 72 6f ┆ d10 ; return; ; pro┆ 0xa520…a540 63 65 64 75 72 65 20 70 72 65 70 61 72 65 20 64 72 69 76 65 72 28 70 72 6f 63 29 0a 3b 20 66 75 ┆cedure prepare driver(proc) ; fu┆ 0xa540…a560 6e 63 74 69 6f 6e 3a 20 69 6e 69 74 69 61 6c 69 7a 65 73 20 63 75 72 72 65 6e 74 20 65 78 74 65 ┆nction: initializes current exte┆ 0xa560…a580 72 6e 61 6c 20 70 72 6f 63 65 73 73 20 61 6e 64 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 0a ┆rnal process and current buffer ┆ 0xa580…a5a0 3b 20 20 20 20 20 20 20 20 20 20 20 65 78 69 74 73 20 74 6f 20 74 68 65 20 69 6e 74 65 72 72 75 ┆; exits to the interru┆ 0xa5a0…a5c0 70 74 20 61 64 64 72 65 73 73 20 67 69 76 65 6e 20 69 6e 20 70 72 6f 63 3a 0a 3b 20 20 20 20 20 ┆pt address given in proc: ; ┆ 0xa5c0…a5e0 20 20 20 20 20 20 20 20 20 69 6e 74 20 61 64 64 72 20 20 20 20 3a 20 20 6e 6f 72 6d 61 6c 20 65 ┆ int addr : normal e┆ 0xa5e0…a600 78 69 74 0a 3b 0a 3b 20 74 68 65 20 63 61 6c 6c 20 6d 75 73 74 20 62 65 20 6d 61 64 65 20 6c 69 ┆xit ; ; the call must be made li┆ 0xa600…a620 6b 65 20 74 68 69 73 3a 0a 3b 0a 3b 20 20 20 70 72 6f 63 20 2b 20 61 32 34 36 3a 20 20 6a 6c 20 ┆ke this: ; ; proc + a246: jl ┆ 0xa620…a640 20 77 31 20 20 20 20 20 63 33 30 20 3b 20 64 72 69 76 65 72 20 73 65 72 76 69 63 65 20 69 6e 73 ┆ w1 c30 ; driver service ins┆ 0xa640…a660 74 72 75 63 74 69 6f 6e 0a 3b 20 20 20 20 20 2d 2d 2d 0a 3b 20 20 20 70 72 6f 63 20 2b 20 61 32 ┆truction ; --- ; proc + a2┆ 0xa660…a680 34 35 3a 20 20 69 6e 74 65 72 72 75 70 74 20 61 64 64 72 65 73 73 0a 3b 20 20 20 20 20 2d 2d 2d ┆45: interrupt address ; ---┆ 0xa680…a6a0 0a 3b 20 20 20 70 72 6f 63 20 2b 20 61 35 34 20 3a 20 20 6e 65 78 74 20 6d 65 73 73 61 67 65 20 ┆ ; proc + a54 : next message ┆ 0xa6a0…a6c0 62 75 66 0a 3b 0a 3b 20 63 61 6c 6c 3a 20 77 31 20 3d 20 70 72 6f 63 20 2b 20 61 32 34 37 0a 3b ┆buf ; ; call: w1 = proc + a247 ;┆ 0xa6c0…a6e0 20 65 78 69 74 3a 20 77 30 20 3d 20 72 65 73 75 6c 74 28 70 72 6f 63 29 2c 20 77 31 20 3d 20 70 ┆ exit: w0 = result(proc), w1 = p┆ 0xa6e0…a700 72 6f 63 2c 20 77 32 20 3d 20 62 75 66 28 70 72 6f 63 29 0a 3b 20 20 20 20 20 20 20 20 20 20 20 ┆roc, w2 = buf(proc) ; ┆ 0xa700…a720 20 20 20 20 20 69 6e 74 2e 61 64 64 72 20 20 20 20 3a 20 20 6e 6f 72 6d 61 6c 20 65 78 69 74 0a ┆ int.addr : normal exit ┆ 0xa720…a740 0a 63 33 30 3a 20 61 6c 20 20 77 31 20 20 78 31 2d 61 32 34 37 20 20 20 3b 0a 20 20 20 20 20 72 ┆ c30: al w1 x1-a247 ; r┆ 0xa740…a760 73 20 20 77 31 20 20 20 20 20 62 31 39 20 20 20 20 3b 20 20 20 20 63 75 72 72 65 6e 74 20 72 65 ┆s w1 b19 ; current re┆ 0xa760…a780 63 65 69 76 65 72 20 3a 3d 20 62 75 66 3b 0a 20 20 20 20 20 72 6c 20 20 77 32 20 20 78 31 2b 61 ┆ceiver := buf; rl w2 x1+a┆ 0xa780…a7a0 35 34 20 20 20 20 3b 0a 20 20 20 20 20 72 73 20 20 77 32 20 20 20 20 20 62 31 38 20 20 20 20 3b ┆54 ; rs w2 b18 ;┆ 0xa7a0…a7c0 20 20 20 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 20 61 64 64 72 65 73 73 20 3a 3d 20 6e 65 ┆ current buffer address := ne┆ 0xa7c0…a7e0 78 74 20 6d 65 73 73 28 70 72 6f 63 29 3b 0a 20 20 20 20 20 72 6c 20 20 77 30 20 20 78 31 2b 61 ┆xt mess(proc); rl w0 x1+a┆ 0xa7e0…a800 32 34 34 20 20 20 3b 20 20 20 20 72 65 73 75 6c 74 20 3a 3d 20 74 69 6d 65 6f 75 74 28 70 72 6f ┆244 ; result := timeout(pro┆