mirror of
https://github.com/pkimpel/retro-b5500.git
synced 2026-02-12 03:07:30 +00:00
Commit DCMCP transcription as of 2012-10-29; replace powers-of-two
tables in CentralControl.
This commit is contained in:
@@ -14828,3 +14828,86 @@ C43:: H ~ PRT[P1MIX,TSX]; % SET TASK ATTRIBUTES 19685570
|
||||
C44:: P(..PICKTHELOCK); GO TO CN; 19685595
|
||||
C46:: P(..EVENTANDINTERRUPT); GO TO CN; % ATTACH, DETACH, CAUSE STMTS 19685596
|
||||
END OF SHORT COMMUNICATE;% 19686000
|
||||
PROCEDURE TISKTASK; 19687000
|
||||
% A COBOL OR ALGOL PROGRAM WHICH EITHER CONTAINS OR IS INVOKED BY A 19687100
|
||||
% PROCESS, CALL, OR RUN/EXECUTE STATEMENT, OR MANIPULATES LOCKS (COBOL)19687120
|
||||
% OR EVENTS (ALGOL), WILL BE FLAGGED IN SEGMENT 0 (WORD 2 [3:1]=1) OF 19687140
|
||||
% ITS CODE FILE AS HAVING A TASK ARRAY. 19687150
|
||||
% THE FORMAT OF THE TASK ARRAY (MYSELF AT PRT[TSX]) IS AS FOLLOWS 19687200
|
||||
% TSKA[0] = TASKVALUE: PROVIDED FOR USER 19687300
|
||||
% TSKA[1] = 7 CHR MFID OF CODE FILE 19687400
|
||||
% TSKA[2] = 7 CHR FID OF CODE FILE 19687500
|
||||
% TSKA[3] = STATUS: 1=SCHEDULED 19687600
|
||||
% 2=ACTIVE 19687610
|
||||
% -1=TERMINATED (DS-ED OR EOJ) 19687650
|
||||
% -2=INITIATION ATTEMPTED BUT FAILED 19687680
|
||||
% TSKA[4] = STACKNO: MIX INDEX IF RUNNING 19687700
|
||||
% SCHEDULE-ID IF SCHEDULED 19687750
|
||||
% TSKA[5] =HEAD OF LIST OF LOCK-ITEMS IN CONTROL OR QUEUED19687780
|
||||
% TSKA[6] = TYPE: 0=ASYNCHRONOUS DEPENDENT (PROCESS) 19687800
|
||||
% 1=SYNCHRONOUS DEPENDENT (CALL) 19687840
|
||||
% 2=INDEPENDENT (RUN/EXECUTE) 19687850
|
||||
% TSKA[7] = CALL STATE: 0=INITIAL 19687860
|
||||
% 1= EXIT PROGRAM/ 19687870
|
||||
% EXIT PROGRAM RETURN HERE 19687872
|
||||
% 2=CONTINUED OR RE-CALLED 19687874
|
||||
% TSKA[8] : [1:1]=1 IFF JUST EXECUTED INTERRUPTER INTRINSC19687876
|
||||
% AND SFINTQ IS NON-EMPTY 19687878
|
||||
% [2:1]=1 IFF SFINTQ IS NON-EMPTY 19687880
|
||||
% [3:1]=1 IFF INTERRUPTER INTRINSIC IS RUNNING 19687882
|
||||
% [4:1] = SFINTQ INTERLOCK BIT (ON TO START) 19687883
|
||||
% [FF] = ABSOLUTE ADDRESS OF OLD IRCW 19687884
|
||||
% [CF] = HEAD OF LIST OF DECLARED INTERRUPTS 19687885
|
||||
% SEGMENT 0 FOR IPC PROGRAM FILES: 19687886
|
||||
% S[2].[2:1] =1 IF THERE ARE DECLARED INTERRUPTS 19687887
|
||||
% S[2].[3:1] =1 FOR AN IPC PROGRAM FILE 19687888
|
||||
% (EITHER INVOKING OR INVOKED) 19687889
|
||||
% S[2].[4:1] =1 FOR AN INVOKED IPC PROGRAM FILE 19687890
|
||||
% NOTE: S[2].[2:3] = JAR[2].[5:3]. JAR[2].[6:1]=1 INDICATES TO COM5 19687892
|
||||
% THAT THIS JOB MAY HAVE DEPENDENT TASK DESCENDENTS TO BE DS-ED 19687894
|
||||
% OR ES-ED AND LOCK QUEUES TO BE CLEANED UP WHEN IT TERMINATES. 19687896
|
||||
% S[8] NUMBER OF TASK PARAMETERS TO BE RECEIVED 19687898
|
||||
% ( = N BELOW). 19687900
|
||||
% S[9] DISK ADDRESS OF PARAMETER DESCRIPTION SEG 19687910
|
||||
% FORMAT OF ENTRY IN PARAMETER DESCRIPTION SEGMENT: 19687920
|
||||
% (BEGINNING IN WORD 1) 19687925
|
||||
% [18:15] : TYPE - 0 TASK ARRAY - NAME 19687930
|
||||
% 1 EVENT/LOCK - NAME 19687935
|
||||
% 2 PRT CELL - NAME 19687940
|
||||
% 3 PRT CELL - VALUE 19687945
|
||||
% 4 (SAVE) ARRAY - NAME 19687950
|
||||
% 5 ARRAY - VALUE 19687955
|
||||
% (ONLY 1-DIMENSIONAL ARRAYS CAN BE PASSED AS TASK PARAMETERS). 19687957
|
||||
% [8:10] : SIZE - SIZE OF ARRAY FOR TYPES 4 AND 5, ELSE 0 19687960
|
||||
% [33:15] : LOCATION-PRT LOCATION FOR TYPES 0-4, FOR TYPE 5: 19687965
|
||||
% -RELATIVE DISK ADDRESS OF TYPE-2 SEGMENT 19687970
|
||||
% TISTASK MAKES A TEST FOR AGREEMENT BETWEEN THE TASK PARAMETERS 19687975
|
||||
% SPECIFIED IN THE PARAMETER DESCRIPTION SEGMENT AND THOSE SPECIFIED BY19687977
|
||||
% THE F- CELLS (SEE BELOW). LACK OF AGREEMENT EITHER DS-ES THE PARENT 19687980
|
||||
% OR CAUSES A 1 TO BE RETURNED (IN THE CASE OF A COBOL PROGRAM WHICH 19687982
|
||||
% CONTAINS AN "ON EXCEPTION" CLAUSE). 19687984
|
||||
% TISKTASK COPIES THE CODE FILE, FILLING NAME AND VALUE PARAMETERS INTO19687990
|
||||
% THE NEW PRT AND WRITING OUT VALUE ARRAYS AS TYPE-2 SEGMENTS. THE JOB 19687995
|
||||
% IS ENTERED IN THE SCHEDULE AND THE SCHEDULE-ID IS ENTERED IN THE 19687997
|
||||
% TASK ARRAY. THE NEW SHEET ENTRY IS FLAGGED A GO JOB (AS FROM A 19687998
|
||||
% COMPILE-AND-GO). 19687999
|
||||
BEGIN 19688000
|
||||
REAL MFID=-4,FID=-5, % FILE ID OF CODE FILE TO BE INVOKED 19688050
|
||||
% MFID<0 IF ON EXCEPTION CLAUSE IS PRESENT19688060
|
||||
% FID<0 IF CALL OR CONTINUE STATEMENT 19688070
|
||||
N=-6; % NUMBER OF F- PARAMS BETWEEN F-7 AND MKSCW19689000
|
||||
% THERE WILL BE A PAIR OF F- CELLS FOR 19689010
|
||||
% EACH TASK PARAMETER. F(-I) CONTAINS 19689020
|
||||
% THE NAME OR VALUE OF THE PARAMETER. 19689030
|
||||
% F(-(I+1)) CONTAINS THE TYPE 19689040
|
||||
% (AS IN SEGMENT 0). 19689050
|
||||
% (TSKA IS THE FIRST TASK PARAMETER) 19689060
|
||||
% N<0 IF CONTINUE STATEMENT 19689070
|
||||
ARRAY NAME PARM; 19691000
|
||||
ARRAY S[*],R[*],H[*],D[*],W[*], 19692000
|
||||
TSKA=-7[*]; % TASK ARRAY DESCRIPTOR FOR PROCESS, CALL 19692100
|
||||
% INTEGER = TASK ARRAY LENGTH FOR RUN 19692200
|
||||
REAL T,T1,T2,T3,T4,ONEXCEPTION,CALLEDORCONT, 19693000
|
||||
VARRAY,IOD,IOD1,NR,SR,HADDR,PRTRLOC,PRTSZ,ERR,SZ,S1,CR,PRTS; 19694000
|
||||
LABEL L1,ERROR,NEXTROW,L2,XYT; 19695000
|
||||
INTEGER PADDR,ADDR; 19696000
|
||||
|
||||
@@ -54,37 +54,37 @@ function B5500CentralControl() {
|
||||
|
||||
B5500CentralControl.rtcTick = 1000/60; // Real-time clock period, milliseconds
|
||||
|
||||
B5500CentralControl.pow2 = [ // powers of 2 from 0 to 52
|
||||
1, 2, 4, 8,
|
||||
16, 32, 64, 128,
|
||||
256, 512, 1024, 2048,
|
||||
4096, 8192, 16384, 32768,
|
||||
65536, 131072, 262144, 524288,
|
||||
1048576, 2097152, 4194304, 8388608,
|
||||
16777216, 33554432, 67108864, 134217728,
|
||||
268435456, 536870912, 1073741824, 2147483648,
|
||||
4294967296, 8589934592, 17179869184, 34359738368,
|
||||
68719476736, 137438953472, 274877906944, 549755813888,
|
||||
1099511627776, 2199023255552, 4398046511104, 8796093022208,
|
||||
17592186044416, 35184372088832, 70368744177664, 140737488355328,
|
||||
281474976710656, 562949953421312, 1125899906842624, 2251799813685248,
|
||||
4503599627370496];
|
||||
B5500CentralControl.pow2 = [ // powers oF 2 From 0 to 52
|
||||
0x1, 0x2, 0x4, 0x8,
|
||||
0x10, 0x20, 0x40, 0x80,
|
||||
0x100, 0x200, 0x400, 0x800,
|
||||
0x1000, 0x2000, 0x4000, 0x8000,
|
||||
0x10000, 0x20000, 0x40000, 0x80000,
|
||||
0x100000, 0x200000, 0x400000, 0x800000,
|
||||
0x1000000, 0x2000000, 0x4000000, 0x8000000,
|
||||
0x10000000, 0x20000000, 0x40000000, 0x80000000,
|
||||
0x100000000, 0x200000000, 0x400000000, 0x800000000,
|
||||
0x1000000000, 0x2000000000, 0x4000000000, 0x8000000000,
|
||||
0x10000000000, 0x20000000000, 0x40000000000, 0x80000000000,
|
||||
0x100000000000, 0x200000000000, 0x400000000000, 0x800000000000,
|
||||
0x1000000000000, 0x2000000000000, 0x4000000000000, 0x8000000000000,
|
||||
0x10000000000000];
|
||||
|
||||
B5500CentralControl.mask2 = [ // (2**n)-1 for n from 0 to 52
|
||||
0, 1, 3, 7,
|
||||
15, 31, 63, 127,
|
||||
255, 511, 1023, 2047,
|
||||
4095, 8191, 16383, 32767,
|
||||
65535, 131071, 262143, 524287,
|
||||
1048575, 2097151, 4194303, 8388607,
|
||||
16777215, 33554431, 67108863, 134217727,
|
||||
268435455, 536870911, 1073741823, 2147483647,
|
||||
4294967295, 8589934591, 17179869183, 34359738367,
|
||||
68719476735, 137438953471, 274877906943, 549755813887,
|
||||
1099511627775, 2199023255551, 4398046511103, 8796093022207,
|
||||
17592186044415, 35184372088831, 70368744177663, 140737488355327,
|
||||
281474976710655, 562949953421311, 1125899906842623, 2251799813685247,
|
||||
4503599627370495];
|
||||
B5500CentralControl.mask2 = [ // (2**n)-1 For n From 0 to 52
|
||||
0x0, 0x1, 0x3, 0x7,
|
||||
0x0F, 0x1F, 0x3F, 0x7F,
|
||||
0x0FF, 0x1FF, 0x3FF, 0x7FF,
|
||||
0x0FFF, 0x1FFF, 0x3FFF, 0x7FFF,
|
||||
0x0FFFF, 0x1FFFF, 0x3FFFF, 0x7FFFF,
|
||||
0x0FFFFF, 0x1FFFFF, 0x3FFFFF, 0x7FFFFF,
|
||||
0x0FFFFFF, 0x1FFFFFF, 0x3FFFFFF, 0x7FFFFFF,
|
||||
0x0FFFFFFF, 0x1FFFFFFF, 0x3FFFFFFF, 0x7FFFFFFF,
|
||||
0x0FFFFFFFF, 0x1FFFFFFFF, 0x3FFFFFFFF, 0x7FFFFFFFF,
|
||||
0x0FFFFFFFFF, 0x1FFFFFFFFF, 0x3FFFFFFFFF, 0x7FFFFFFFFF,
|
||||
0x0FFFFFFFFFF, 0x1FFFFFFFFFF, 0x3FFFFFFFFFF, 0x7FFFFFFFFFF,
|
||||
0x0FFFFFFFFFFF, 0x1FFFFFFFFFFF, 0x3FFFFFFFFFFF , 0x7FFFFFFFFFFF,
|
||||
0x0FFFFFFFFFFFF, 0x1FFFFFFFFFFFF, 0x3FFFFFFFFFFFF, 0x7FFFFFFFFFFFF,
|
||||
0x0FFFFFFFFFFFFF] ;
|
||||
|
||||
/**************************************/
|
||||
B5500CentralControl.prototype.clear = function() {
|
||||
|
||||
Reference in New Issue
Block a user